codice:int main(int agrc,char **agrv) { char *buffer; lista *stack1,*stack2; int *num1,*num2,i; bool continue; num1=(int*)malloc(sizeof(int)); num2=(int*)malloc(sizeof(int)); (*num1)=0; (*num2)=0; if(num==NULL) MERROR printf("Inserire la prima lista di strutture:\n"); do { insert(stack1,num1); printf("Continuare ad inserire elementi?-->"); buffer=input(); continue=(atoi(buffer)); free(buffer); }while(continue);E' un pò strutturata la cosa,comunque sono queste le funzioni,uso la realloc come vedi.codice:char *input (void) { char *buffer; char seeker; int size=1; buffer=(char*)malloc(sizeof(char)); if(buffer==NULL) MERROR while((seeker=getchar())!=10) { buffer[size-1]=seeker; buffer=(char*)realloc(buffer,sizeof(char*)); if(buffer==NULL) MERROR } buffer[size-1]='\0'; return buffer; } bool insert(lista *ptr,int *num) { (*num)++; char *buffer; if((*num)==1) { ptr=(lista*)malloc(sizeof(lista)); if(ptr==NULL) MERROR } else { ptr=(lista*)realloc(ptr,(*num)*sizeof(lista)); if(ptr==NULL) MERROR } printf("Inserisci nome:-->"); ptr[*num-1].nome=input(); printf("Inserisci cognome:-->"); ptr[*num-1].cognome=input(); printf("Inserisci eta:-->"); buffer=input(); ptr[*num-1]=atoi(buffer); free(buffer); return true; }