Dopo lo spavento col c++ ho fatto ritorno alle origini e ricomincio col c.
il mio proposito è provare ad allocare lo spazio per una stringa
senza sapere in anticipo quanto è lunga.
molto tempo fa avevo scritto questo:
#include <stdio.h>
#include <stdlib.h>
char* allocastringa(char *s)
{
int i;
char c;
for(i=0;(c=getchar())!='\n'&&c!=EOF;i++)
{
s=(char *)realloc(s,(i+1)*sizeof(char));
s[i]=c;
}
s[i]=0;
return s;
}
int main()
{
char* s;
s=allocastringa(s);
printf("verifica: %s \n",s);
}
e mi ricordo che mi avevano detto che era un modo stupido per farlo, però non mi ricordo perchè.
c'è qualcuno che sa dirmi perchè questo codice è ingenuo o se spreca qualcosa?