Hola, realmente lo que te sucede ocure por que no estas elaborando tu programa lo suficientemente bien....
Es en serio, debes inicializar todos los campos y tener especial cuidado cuando escribas con arreglos o con apuntadores,
lo mas recomendable cuando trabajes con apuntadores es que utilices la instruccion malloc, con eso reservas la memoria que vas a usar, y seguidamente la instruccion memset la puedes usar para llenar elbuffer que separaste con null.
Bueno esto tal vez fue muy complejo para ti pero aqui te va unos ejemplos que he hecho:
CADA UNO MANEJA ARCHIVOS COn UN METODO DIFERENTE.