Originariamente inviato da wolf82
Ciao! Ho la seguente porzione di codice C:

main()
{
float *x;
x=(float*) malloc (16000*sizeof(float));

i=0;
if ((filedati=fopen("a.txt","r"))==NULL)

printf("File non presente\n");

else

for (stato=fscanf(filedati,"%f",&x[i]);stato!=EOF;stato=fscanf(filedati,"%f",&x[i]))

i++;

a e' un file con 16000 elementi che devo inserire nel vettore x. Il programma e' stato compilato con GCC usando il software Anjuta. Il compilatore non mi segnala nessun problema, ma in fase di run il programma termina segnalando segmentation fault.
Ora sto operando sotto Linux. Lo stesso programma, invece, eseguito sotto Windows con CodeBlocks e senza usare la malloc non mi crea problemi e funziona correttamente. Perche'?
Il programma è corretto, non ci sono errori. Ci possono essere quindi 2 cause al tuo problema:
a) La malloc fallisce (cosa strana, deve allocare solo 64000 bytes, una vera miseria sui PC di oggi).
b) Il tuo file, per qualche motivo, contiene più di 16000 elementi numerici.