Problem with character controller and collisions

For some reason, after saving a quitting my project then reloading it, my player [complete with CharacterController script] keeps falling through the floor. What happened, how do I fix it and how do I prevent this from happening again?

I know that similar questions have been answered, but I havetn’t been able to find one that helps with this problem…

EDIT** I get an error that says “NullReferenceException: Object reference not set to an instance of an object”

using UnityEngine;
using System.Collections;

[RequireComponent (typeof(CharacterController))]
public class FirstPersonController : MonoBehaviour {

	public float moveSpeed = 10.0f;
	public float mouseSensitivity = 5.0f;
	public float jumpSpeed = 7.0f;

	public float rotUpDown = 0.0f;
	public float headTiltRange = 60.0f;

	float vertVelocity = 0;  

	CharacterController charcont;
	// Use this for initialization
	void Start () {
		Screen.lockCursor = true;
		CharacterController charcont = GetComponent<CharacterController>();
	}
	
	// Update is called once per frame
	void Update () {
		//Rotation
		float rotLeftRight = Input.GetAxis ("Mouse X") * mouseSensitivity;
		transform.Rotate (0, rotLeftRight, 0);

		rotUpDown -= Input.GetAxis ("Mouse Y") * mouseSensitivity;
		rotUpDown = Mathf.Clamp (rotUpDown, -headTiltRange, headTiltRange);
		Camera.main.transform.localRotation = Quaternion.Euler (rotUpDown, 0, 0);

		//Movement
			float fwdSpeed = Input.GetAxis ("Vertical") * moveSpeed;
			float sideSpeed = Input.GetAxis ("Horizontal") * moveSpeed;

			//Gravity
			vertVelocity += Physics.gravity.y * Time.deltaTime;
			Vector3 speed = new Vector3 (sideSpeed, vertVelocity, fwdSpeed);

			//Jumping
		if (charcont.isGrounded && Input.GetButton ("Jump")) {
				//vertVelocity = jumpSpeed;
			}

			speed = transform.rotation * speed;

		charcont.Move (speed * Time.deltaTime);
	}
}

CharacterControllers have this bad habit of passing through the terrain: if the CharacterController penetrates even a little into the ground, it falls like a rock. Are you moving the character transform with Translate? Or could the terrain being shifted up by any other part of the code? If none of these, try to place the character at some height above the terrain (0.5 unit, for instance) in the Editor, so that it falls naturally to the ground when the game starts. About the Null Reference error: read the error message to find where it’s occurring - maybe this error has nothing to do with the falling character.