hey ragazzi perchè se faccio così:
char *testo;
unsigned long i=0;
char vettore1[]= "vettore1";
printf("\n\ninserisci testo");
if( ! (testo = (char*) malloc(sizeof(char))) )
{
printf("\aImpossibile allocare la memoria\n");
return -1;
}
while(1)
{
testo[i]=getchar();
if(testo[i]=='\n') break;
i++;
if( ! (testo = (char*) realloc(testo, i+1)) )
{
printf("\aimpossibile allocare altra memoria\n");
return -1;
}
}
testo[i]='\0';
printf("la stringa inserita e':\n%s\nsono stati allocati %d byte\n", testo, ++i);
FILE *fi;
if((fi = fopen("dat.dat","w")) == NULL)
printf("Errore nell'apertura del file\n");
else
fputs(strcat( vettore1, testo),fi);
se immetto una stringa contenuta tutto va bene ed i dati vengono salvati nel DB, invece se ne metto una un pò più lunga mi si crasha tutto ?
forse per colpa della funzione strcat che ho usato ?
xchè mi sembra che la malloc funzioni bene...


Rispondi quotando

