爲什麼如果我改變數組的某個維度的大小,我會得到一個運行時錯誤:「Segmentation Fault?」。例如:C -multidimensional array cause Segmentation Fault(GCC)
#include <stdio.h>
#define DIM 8
int main(int argc, char **argv)
{
int a[3][3][3][3][3][3][3][3][3][3][DIM],
b;
a[1][1][1][1][1][1][1][1][1][1][1] = 2;
b=a[1][1][1][1][1][1][1][1][1][1][1];
printf("%d \n",b);
return 0;
}
如果DIM是8它不會產生運行時錯誤,只是如果DIM大於8,它會導致運行時錯誤「段錯誤」。爲什麼?
但我需要11維數組和C有沒有新的[]操作數 – psihodelia 2009-11-20 16:12:12
你的意思是使用malloc() - 這是一個C的問題,而不是C++。 – Ant 2009-11-20 16:12:13
@Ant:對不起,修正了它。 @Norma:你爲什麼首先需要這個?你可以模擬它(我會加入它),或者使用'int *******'......但是嚴肅地說你可能有一個設計缺陷。 – int3 2009-11-20 16:17:57