我无法理解一个特定于的场景,在这个场景中,我的C++多线程应用程序(运行在Linux机器上,风河6.x上)正面临一个分段错误。
我知道分段错误的概念,甚至检查了和,但是没有遇到类似于我的情况和/或对我的问题的答案,所以我发布了这个问题。
生成分段错误的代码如下(缩写和简化):
// MyStruct* pMyStruct is a function argument that arrives to the function and at some point of time
// being set to NULL
ASSERT_PTR_NE(pMyStruct, NULL); <---
具有大型全局数组的程序:
int ar[2000000];
int main()
{
}
具有大型本地数组的程序:
int main()
{
int ar[2000000];
}
当我在主函数中声明一个大小较大的数组时,程序会以"SIGSEGV (分段故障)“崩溃。
然而,当我宣布它是全局的时,一切都很好。为什么会这样呢?