Tengo problemas para entender cómo asignar la memoria a un doble puntero. Quiero leer una matriz de cadenas y almacenarla.¿Asignar memoria al puntero doble?
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);
}
en lugar de esto que acabo de asignar un bloque grande de memoria y tienda de la cadena
char **ptr;
ptr = (char**)malloc(sizeof(char)*50*50);
habría que estar mal? Y si es así, ¿por qué es?
No lo llame un "doble puntero" - esto lo lleva mal con el pie mentalmente - es un puntero a un puntero. –