Rol*_*uhs 5 c memory-management
最近调试了一个很奇怪的问题,导致了segmentation fault。
基本上,在我将几个被声明为局部变量的非常大的数组移动到全局变量后,问题就消失了,这意味着据我所知,我将它们从堆栈移动到了堆空间。没有其他任何改变。分段错误本身出现在非常旧且稳定的代码中,这些代码也被其他没有遇到任何分段错误的程序共享。
总的来说,这些阵列的大小约为 1.5 MB。
过大的堆栈是否可能通过覆盖/弄乱函数指针而导致分段错误?
我的感觉是这样的事情应该被编译器捕获,但我绝对没有其他方法来解释这种行为。
平台为 Linux (Ubuntu 18.04)