我对C编程相当陌生,并试图正确理解C中内存管理的细节.
我做了一个简单的程序,它可以编译,没有任何问题,但在调试过程中,在第printf("The next line gives a segmentation error");
行之后出现分段错误
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h> // Here you have the isdigit macro
int main()
{
FILE *filePtr;
char fileStr[150]; // Buffer for reading file.
filePtr = fopen("ManyRandomNumbersLog.txt", "r");
printf("\n\nNow reading the file:\n");
while (!feof(filePtr))
{
printf("The next line is a segmentation fault!\n");
// WHYYYY?!?!?!?
fgets(fileStr, 150, filePtr);
printf("%s\n", fileStr);
}
return 0;
}
fgets
函数调用似乎给出了这个错误,因为指针有以下"Error?"在它里面:
你知道问题是什么吗?知道如何预防吗?
我试着调试它,但找不出为什么指针无法访问该内存.