问题描述
- return 0;出现段错误
-
Linux平台,编写函数时发现return 0;出现段错误!!!不知道是什么情况,开始以为函数体过大,定义变量过长(有的数组达到2048字节),自己也尝试修改过系统允许的堆栈最大值,但没用!
而后将函数分开,变成几个小函数,然后段错误就消失了!!!
问题虽然解决了,但是不知道问题的原因,希望懂得说明一下return 0;出现段错误是什么情况。
解决方案
听起来像是stack被你crash了,数组过大应该不是问题,2048自己的数字,你不会用静态数组吧?
但是没有代码,也只能猜猜了
解决方案二:
不可能是由于return 0导致的,问题的原因肯定在于你对数组之类局部变量的修改越界破坏了栈,导致栈里的返回地址错误,表现出来的情况就是return的时候程序跑飞了
解决方案三:
函数内部有数组越界等,造成函数的栈桢空间被破坏了
时间: 2024-07-28 16:57:48