c语言fopen函数内存错误 15

直接运行的话是XXXXX不能为read的什么的对话框。debug的话,Codeblocks返回的错误信息是:ChildprocessPID:6668Programrece... 直接运行的话是XXXXX不能为read的什么的对话框。
debug的话,Codeblocks返回的错误信息是:
Child process PID: 6668
Program received signal SIGSEGV, Segmentation fault.
In ntdll!RtlEnumerateGenericTableLikeADirectory () (C:\WINDOWS\system32\ntdll.dll)
Continuing...
Error accessing memory address 0x401c1d: Input/output error.
右下角会弹SIGSEGV错误的对话框。代码如下:

运行到fopen就会报错,求解答啊有木有。
展开
 我来答
春误双卿
2014-02-10 · TA获得超过725个赞
知道小有建树答主
回答量:580
采纳率:91%
帮助的人:457万
展开全部
你这个程序,fopen函数没有错误,唯一有可能出现问题的地方是,fopen打开后,没有判断文件句柄是否有效,在下面fclose的时候,如果句柄无效,那么就会出错
追问
其实原来的代码是while (fscanf("%s%d",&ss,&n)==2){.....}
运行到这句出错。这个就判断了有效无效吧,但是就会出现运行错误而不是程序运行下去。
追答
你先判断一下in的返回值吧,如果为NULL,那你下面的fscanf函数也是会出错的,然后再看一下你ss数组中读取的值,是否有值,如果正常,那么就是你下面的函数里面的问题了,不知道你那个prework函数里面怎么写的
lixiang2202
2014-02-10 · TA获得超过547个赞
知道答主
回答量:55
采纳率:0%
帮助的人:36.1万
展开全部
增加容错来判断
分别判断in和out是否为NULL
追问
给出的代码里输出了in,我又输出了下out,都不是NULL
追答
要不你把你所有的代码都粘出来
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
samplezuo
2014-02-10 · TA获得超过320个赞
知道小有建树答主
回答量:452
采纳率:100%
帮助的人:256万
展开全部
是不是文件路径的问题?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式