Problema insolito MALLOC

m_kohls
17 de Diciembre del 2005
hola gente, esribo porque estoy haciendo un programa para la facultad y estoy teniendo un rarisimo problema con un malloc, les dejo el codigo a ver si pueden ver algo raro.
Igualmente lo que les presento es una pequeña funcion, que al llamarla una vez sola no produce error alguno, ahora cuando la ejecuto mas de 3 veces consecutivas me tira el cartelito de windows se ha detectado un problema y debe cerrarse (enviar informe o no enviar), en fin... lo que hace esta funcion es levantar de un archivo binario algo previamente guardado y genera una estructura para su posterior utilizacion. Cualquier cosa q no explique y les pueda servir diganme.
Desde ya muchas Gracias!!!

NumeroAstronomico* NA_Read(FILE *flujo)
{
NumeroAstronomico *na;
int i, teNecesito;
char *entero;

printf("antes del malloc\n");
if((na = malloc (sizeof(NumeroAstronomico))) == NULL)
{
printf("Error en la asignacion de memoria");
return NULL;
}
printf("antes del fread\n");
fread(&na->longitudError, sizeof(int), 1, flujo);
printf("despues del fread y antes del otro malloc\n");
printf("a ver q tiene longitud de error para q se trabe\n");
printf("%d",na->longitudError+1);
teNecesito=na->longitudError+1;
if ((entero = malloc(sizeof(char)* teNecesito)) == NULL)
{
printf("Error en la asignacion de memoria");
na->entero = NULL;;
}
printf("antes del for\n");
for (i = 0; i < na->longitudError; i++)
{
fread(&entero[i], sizeof(int), 1, flujo);
}
printf("pasa\n");
entero[i] = \'\0\';

na->entero = entero;
printf("se va\n");
return na;
}

m_kohls
17 de Diciembre del 2005
olvide decir que se cuelga en el segundo malloc (no en el primero) y como veran, hice un printf para ver si el numero que recibia era válido y si lo es. :D
saludos