S******n 发帖数: 489 | 1 如下代码,为什么会显示segmentation fault呢。我是用g++编译的。请问这个是为什么
呢?资源不够么?
#include
#include
#define NODE 2000
int main()
{
int graph[NODE + 1][NODE + 1];
int node[NODE + 1];
int nodeCheck[NODE + 1];
for (int i = 1; i <= NODE; i ++)
{
for (int j = 1; j <= NODE; j ++)
{
graph[i][j] = 2;
}
}
return 1;
} |
X****r 发帖数: 3557 | 2 堆栈上放不下这么大的数组。在数组前加static关键字。
什么
【在 S******n 的大作中提到】 : 如下代码,为什么会显示segmentation fault呢。我是用g++编译的。请问这个是为什么 : 呢?资源不够么? : #include : #include : #define NODE 2000 : int main() : { : int graph[NODE + 1][NODE + 1]; : int node[NODE + 1]; : int nodeCheck[NODE + 1];
|
S******n 发帖数: 489 | 3 哦,明白了,如果是静态数组的话就放在内存里了?
【在 X****r 的大作中提到】 : 堆栈上放不下这么大的数组。在数组前加static关键字。 : : 什么
|
S******n 发帖数: 489 | 4 哦,静态变量存放在静态区里..
【在 S******n 的大作中提到】 : 哦,明白了,如果是静态数组的话就放在内存里了?
|
P********e 发帖数: 2610 | 5 2001*2001也方不下?
【在 X****r 的大作中提到】 : 堆栈上放不下这么大的数组。在数组前加static关键字。 : : 什么
|
k******r 发帖数: 2300 | 6 The maximum space for stack is 1M by default. However you can set the
maximum space for stack.
【在 P********e 的大作中提到】 : 2001*2001也方不下?
|
x**********g 发帖数: 357 | 7 agree
【在 k******r 的大作中提到】 : The maximum space for stack is 1M by default. However you can set the : maximum space for stack.
|
f********i 发帖数: 563 | 8
上百兆字节了
用objdump你可以看到各个字段的容量
【在 P********e 的大作中提到】 : 2001*2001也方不下?
|
P********e 发帖数: 2610 | 9 I don't think he is using Visual studio
【在 k******r 的大作中提到】 : The maximum space for stack is 1M by default. However you can set the : maximum space for stack.
|
I*****y 发帖数: 602 | 10 *nix下面的话,可以使用limits命令察看stack大小。
也可以设置stack为unlimited,这样应该就没有问题了。
【在 P********e 的大作中提到】 : I don't think he is using Visual studio
|