当我尝试在C程序中初始化大小为300*300*4的3D数组时,我的程序停止运行并报告堆栈溢出错误.我使用的系统有3GB RAM,应该足够了.有没有办法增加分配给程序的内存?我在Windows Vista上使用Dev C++.
Art*_*ius 11
使用malloc()/ free()(或new[]/ delete[]对于C++),或全局数组或本地静态数组.如果您尝试在函数中创建非静态数组,它将在堆栈上分配,并且堆栈通常不是很大.
您也可以尝试向后初始化数组; 当页面错误发生时,一些操作系统会动态增长堆栈,因为在x86上,堆栈在数字上向下增长,向后初始化可能会有所帮助.