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...