char** lista[p]

io non ho scritto cosi , mi pare , ma char** lista;

sicuramente la matrice dovrà avere almeno una riga , poi da spezzoni sparsi di codice , intuire cosa vuoi fare è come avere la sfera di cristallo che non funziona


prima allochi spazio per una riga con malloc() , poi dovrai in qualche modo sapere se deve essere aggiunta una riga , e userai realloc()

qualcosa del genere , ma devi adattarlo alle tue esigenze specifiche

codice:
char **lista;
int contatore=0,scelta ;
lista=(char**)malloc(sizeof(char*)); //prima riga

lista[contatore]=(char*)malloc(sizeof(char)*11);//colonne

while(1)
{
   printf("vuoi inserire un altro elemento 1 =si\n");
   scanf("%d",&scelta);
   if(scelta==1)
   {
        contatore++;
        lista=(char**)realloc(lista,sizeof(char*)*(contatore+1));
        lista[contatore]=(char*)malloc(sizeof(char)*11);
   }
   else 
         break;



}