У меня есть простой вопрос об использовании fgets() с char * string.Использование fgets() с char * type
....
char *temp;
FILE fp=fopen("test.txt", "r");
fgets(temp, 500, fp);
printf("%s", temp);
....
Этот код не работает.
Но после того, как я модифицировал char *temp
на char temp[100];
, код работал хорошо, как я и предполагал.
В чем разница между этими двумя?
Когда я гугле это, некоторые говорили, что память должна быть распределена char *
с помощью таНос() ...
Но я не мог понять.
Если не выделять память на что будет указывать указатель? Чтобы помнить об этом, сразу назначьте NULL указателю после объявления. Это слово сохраняется, когда вы освобождаете память указателя. Добавьте NULL туда после удаления. Указатель на выделенную память не является очень распространенной ошибкой и дает вам ужасную ошибку сегментации. –