我已将其缩小到导致分段错误的特定行。
int match[2000][2][2000];
我使用此数组超出计算机内存限制,因为我的代码在更改为此时可以正常运行。
int match[1000][2][1000];
答案 0 :(得分:4)
您似乎有效地超出了堆栈限制。
您可以通过ulimit -s
或ulimit -a
进行检查,以检查当前设置的所有限制。
只需使用ulimit -s <your size>
来增加堆栈大小或使用动态内存分配(但我想你已经知道这个解决方案了。)
PS:ulimit将在shell中运行。