У меня небольшой концептуальный вопрос об указателях.Это может быть неловко, но мне нужно знать ответ.
Я пытался прочитать строку из файла, используя функцию getline.getline принимает char ** в качестве первого аргумента, и именно там хранится указатель строки.Пожалуйста, смотрите вставленный код ниже и скажите мне разницу между ними.Обратите внимание на объявление и использование указателя readLine.
Второй код дал мне ошибку сегментации, когда он достиг printf ().Я проверил значение в * readLine с помощью gdb (до printf ()), и оно было правильным, но когда оно переходит к printf (), бум SIGSEGV
, этот код работает: FILE * fp;
char *readLine;
readLine=NULL;
int s=0;
while(getline(&readLine,(size_t *)&s,fp) != -1){
printf("%s\n",readLine);
}
этот код не работает: FILE * fp;
char **readLine;
*readLine=NULL;
int s=0;
while(getline(readLine,(size_t *)&s,fp) != -1){
printf("%s\n",*readLine);
}
cheers ... rv