Ho difficoltà a capire come assegnare la memoria a un doppio puntatore. Voglio leggere un array di stringhe e memorizzarlo.Assegnare la memoria al doppio puntatore?
char **ptr;
fp = fopen("file.txt","r");
ptr = (char**)malloc(sizeof(char*)*50);
for(int i=0; i<20; i++)
{
ptr[i] = (char*)malloc(sizeof(char)*50);
fgets(ptr[i],50,fp);
}
invece di questo ho appena assegnare un grande blocco di memoria e memorizzare la stringa
char **ptr;
ptr = (char**)malloc(sizeof(char)*50*50);
vorrei che essere sbagliato? E se è così, perché è?
Non chiamarlo "puntatore doppio": questo ti porta fuori dal piede sbagliato mentalmente - è un puntatore a un puntatore. –