首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >fclose上的Seg错误?

fclose上的Seg错误?
EN

Stack Overflow用户
提问于 2015-02-11 10:21:38
回答 1查看 127关注 0票数 0

我正在尝试读取一个整数文件,其中包含文件中的整数个数作为第一个整数,但是当我尝试在读取后关闭该文件时,我得到了一个seg错误。

我已经了解到,如果文件指针为空,而您尝试关闭它,它将seg错误。但是,我在关闭它之前检查它是否为空,它不是空的,并且它仍然给我一个seg错误。

我通过GDB运行它,fclose(fp)一执行,它就出现了故障。

到底怎么回事??

下面是我的代码:

代码语言:javascript
复制
            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);
EN

回答 1

Stack Overflow用户

发布于 2015-02-11 10:24:44

代码语言:javascript
复制
for(int i = 0; i <= numsToRead; i++)
//               ^^

应该是

代码语言:javascript
复制
for(int i = 0; i < numsToRead; i++)
//               ^
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28445528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档