У меня возникли проблемы с пониманием того, как назначить память двойному указателю. Я хочу прочитать массив строк и сохранить его.Назначение памяти двойному указателю?
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);
}
вместо этого я просто назначить большой блок памяти и хранить строку
char **ptr;
ptr = (char**)malloc(sizeof(char)*50*50);
бы это было не так? И если да, то почему?
Не называйте его «двойным указателем» - это автоматически выводит вас на неправильную ногу - это указатель на указатель. – 2010-02-13 14:17:19