我有一个程序问题,我想在C中声明一个256x256数组。不幸的是,每次我尝试甚至声明一个数组的大小(整数),并且运行我的程序时,它意外终止。有什么建议么?我没有尝试过内存分配,因为我似乎无法理解它如何与多维数组一起工作(尽管我是C新手,但可以随时指导我完成)。另一个值得注意的事情是我可以用C语言声明一个248x248的数组,但没有任何问题,但不会更大。为什么248x248是我可以声明的最大二维数组大小?
dims = 256;
int majormatrix[dims][dims];
编译时:
gcc -msse2 -O3 -march=pentium4 -malign-double -funroll-loops -pipe -fomit-frame-pointer -W -Wall -o "SkyFall.exe" "SkyFall.c"
我使用赛特323(不知道如何检查GCC版本)。
你应该可以这样做,除非你使用的是旧编译器(?!)(我在Windows上测试过,它的堆栈大小为1MB)。 – nhahtdh
你可能会通过在本地声明堆栈来炸毁你的堆栈。对于大多数机器来说,这本身并不是一个巨大的阵列。关于如何声明和使用动态分配的二维数组,有许多答案。搜索一下。 – Duck
你可以发表你如何初始化数组的代码示例吗? –