PDA

View Full Version : [C] Lettura stringhe


Unrue
09-05-2008, 10:44
Purtroppo ho dimenticato cose banali di base. Ho un file ASCII e vorrei leggere ogni riga e metterla in una posizione di un array di puntatori a carattere. Ma mi va in SigFault:


#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
FILE *fp;
char str[128];
char*array_stringhe[256];



if((fp = fopen(argv[1], "r"))==NULL) {
printf("Cannot open file.\n");
exit(1);
}



int i=0;

while(!feof(fp)) {
if(fgets(array_stringhe[i], 128, fp))
printf("%s\n", array_stringhe[i]);

i++;

}



fclose(fp);

return 0;
}

VICIUS
09-05-2008, 12:37
I puntatori non si inizializzano da soli. Devi usare malloc e assegnare un po' di memoria ad array_stringhe.

ciao ;)

DanieleC88
09-05-2008, 15:04
Esatto, ricorda di allocare e deallocare la memoria ogni volta che fai qualcosa di dinamico. Ed è un segfault, non sigfault. :p

ciao ;)