Semmai...
codice:
stringa=(char*)realloc(stringa,i*sizeof(char));
e subito dopo la printf
. Comunque credo che abbia più senso riallocare la memoria solo ogni tanto (ad esempio ogni 1024 bytes).
codice:
#define BUFFERINCREMENT 1024
stringa=(char*)malloc(sizeof(char)*BUFFERINCREMENT);
if(stringa!=NULL)
printf("\n > memoria allocata correttamente < ");
else
{
printf("\n > impossibile allocare la memoria < ");
return 1;
}
printf("\nPer terminare l'immissione e visualizzare la stringa premere INVIO\n");
while((temp=getchar())!='\n'){
stringa[i]=temp;
if(!(i%BUFFERINCREMENT)&&i)
{
if((stringa=(char*)realloc(stringa,i*sizeof(char)+BUFFERINCREMENT*sizeof(char)))==0);
{
printf("\n > impossibile riallocare la memoria < ");
return 2;
}
i++;
}
}