Ho provato a creare una piccola funzione che alloca memoria prendendo in ingresso un puntatore a char,da quello che ho capito la memoria allocata non rimane fino alla fine della funzione (giusto?),il mio scopo è avere una funzione che ti restituisce il puntatore al primo elemento dell' array di char creato (ricevuto da standard input) e allocato all' interno della funzione,in modo da avere una stringa variabile,nel senso che non so le dimensioni da prima.
Non va se la inserisco all' interno del main,ecco qua cosa ho scritto:
codice:
main()
{
char *p;
allocam(p); /*Non viene allocato*/
}
void allocam(char*p)
{
int lenght,k,i=0;
char *c,ci;
c=(char*)malloc(sizeof(char));
while(ci!=10)
{
ci=getchar();
c[i]=ci;
i++;
c=(char*)realloc(c,sizeof(char)*i);
}
p=c;
}
Come dovrei fare?