当我尝试制作一个简单的三维数组char tmp[256][256][256];
时,它会编译,但我无法运行它。
我怎样才能做到这一点?
谢谢!
int main()
{
int tmp[256][256][256];
getch();
}
就是这样。它不会跑。
您遇到堆栈溢出。多么讽刺!
有2解决方案:
1
重写代码,不要要求太多内存。使用动态内存分配:malloc()
、calloc()
、free()
和其他。
2。增加操作系统分配给程序的堆栈内存:链接
嘿,您正在请求256*256*256=16777216字节的块。这个数组是在main()方法中声明的,该方法占用堆栈上的内存,而不是堆上的内存。因此,请尝试在main()之外声明此数组,或者使用malloc()函数动态分配内存。它会很好用的。