我正在尝试读取一个整数文件,其中包含文件中的整数个数作为第一个整数,但是当我尝试在读取后关闭该文件时,我得到了一个seg错误。
我已经了解到,如果文件指针为空,而您尝试关闭它,它将seg错误。但是,我在关闭它之前检查它是否为空,它不是空的,并且它仍然给我一个seg错误。
我通过GDB运行它,fclose(fp)一执行,它就出现了故障。
到底怎么回事??
下面是我的代码:
char *mode = "r";
int numsToRead = 0;
FILE *fp = fopen(inputFile, mode);
if (fp == NULL){
fprintf(stderr, "Can't open input file!\n");
exit(1);
}
int *temp;
int index = 0;
// Get number of integers (first integer)
fscanf(fp, "%d", &numsToRead);
fprintf(stdout, "nums to read: %d\n", numsToRead);
integers = (int*)malloc(sizeof(int) * numsToRead);
for(int i = 0; i <= numsToRead; i++){
int currInt;
if(fscanf(fp, "%d", &currInt) == 1)
integers[i] = currInt;
else
break;
}
if(fp != NULL)
fclose(fp);发布于 2015-02-11 10:24:44
for(int i = 0; i <= numsToRead; i++)
// ^^应该是
for(int i = 0; i < numsToRead; i++)
// ^https://stackoverflow.com/questions/28445528
复制相似问题