2 baidu 32457989 baidu_32457989 于 2016.01.19 10:43 提问

c语言程序退出之后段错误 5C

我有一个程序,在本机执行没问题,redhat6.4.但是在同事的centos5里面有段错误
gdb调试显示错误位置是??()
是在程序退出之后,最后一个}之后段错误
求助大神,应该是什么原因导致的

3个回答

91program
91program   Ds   Rxr 2016.01.19 11:14

复制源代码,到出错的目标机上调试一下。
是什么原因,只有实际的调试后才能知道。

91program
91program 回复baidu_32457989: 你资源不释放,应该不会引起应用出错;最好还是把应该释放的资源都释放掉!因为内存越界,特别是很少的内存越界是不容易查的。它也只会在一定情况下引起出错。以前偶尔遇到在函数中出现小的内存越界,函数功能正常、但在函数退出时问题暴露出来。
接近 2 年之前 回复
baidu_32457989
baidu_32457989 难道不需要调用mysql_close么
接近 2 年之前 回复
baidu_32457989
baidu_32457989 改了一下数组大小,错误显示是msql_close free段错误,虽然不明白为什么
接近 2 年之前 回复
baidu_32457989
baidu_32457989 回复91program: 好的,多谢,我一会找一下
接近 2 年之前 回复
91program
91program 回复baidu_32457989: 内存操作越界了,而不是申请的内存没有释放。
接近 2 年之前 回复
baidu_32457989
baidu_32457989 源代码太长,写的也比较乱,在出错的机器上调试就显示错误是??(),所有malloc已free,所有异常已处理。实在找不到错误了,只是想请大神分析一下,是否有遇到此类情况,大概是什么原因,越界,野指针还是什么
接近 2 年之前 回复
qq_27183003
qq_27183003   Ds   Rxr 2016.01.19 13:51

内存操作越界可能性比较大,可以增加异常捕获,看看是错误出在哪一段。
http://blog.csdn.net/qq_27183003/article/details/50397009

qq_33515337
qq_33515337   2016.01.19 15:34

野指针造成的可能性最大

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!