I am having trouble understanding how to assign memory to a double pointer. I want to read an array of strings and store it.
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);
}
instead of this of i just assign a large block of memory and store the string
char **ptr;
ptr=(char**)malloc(sizeof(char)*50*50);
would that be wrong? And if so why is it?