Salve ragazzi, stò cercando di creare una funzione per inserire una stringa da input arbitrariamente lunga. Io per adesso ho la seguente function:
codice:
char *StringaArbitraria()
{
int i=0;
char *c,ci;
c=(char*)malloc(sizeof(char));
while(ci!=10) // mi fermo quando trovo un newline \n
{
ci=getchar(); // inserisco un singolo carattere
c[i]=ci; // lo associo puntatore
i++;
c=(char*)realloc(c,sizeof(char)*(i+1));
}
c[i]='\0'; //inserisco terminatore '\0'
return c;
}
Però, il prof. ci ha detto che usare tante volte la realloc, è dispendioso e và modificata, come posso modificare questa function?