C++ 动力学结构

C++ 动力学结构,c++,C++,我宣布这一结构: struct matrix27 { double mat27[1083][1083]; } a1; struct matrix27 { double mat27[5034][5034]; } a1; 我的程序以这种结构运行。 但当我宣布这一结构时: struct matrix27 { double mat27[1083][1083]; } a1; struct matrix27 { double mat27[5034][5034]; } a1; 我的程序

我宣布这一结构:

struct matrix27 {
  double mat27[1083][1083];
} a1;
struct matrix27 {
  double mat27[5034][5034];
} a1;
我的程序以这种结构运行。
但当我宣布这一结构时:

struct matrix27 {
  double mat27[1083][1083];
} a1;
struct matrix27 {
  double mat27[5034][5034];
} a1;
我的程序不会运行(它会编译,但当我运行它时,windows会停止它。“filename.exe已停止工作”)

我在几个函数中使用了a1,我想动态声明它,
我该怎么做呢?

我想
5034^2*sizeof(double)
内存太大,无法放入平台的堆栈空间。(在我的平台上几乎是200MB,一个试图分配这么多堆栈空间的程序崩溃了。)你可以通过把内存放在堆上来绕过它


并确保您阅读了。

sbi是正确的。如果你真的想把这个结构放在堆栈上,你必须增加堆栈的大小。如果您使用的是Visual Studio,可以选择(项目)属性->配置属性->链接器->系统->堆栈保留大小

您所说的“我不能运行它”是什么意思?它不编译吗?它在运行时崩溃吗?您看到了什么错误消息?它正在编译,但当我运行它时,windows会停止它。“filename.exe已停止工作”。您能提供一个完整的、可编译的测试用例,它仍然显示您不理解的错误吗?@FredN:它使用Win7/64上的VC9为我复制。@sbi:如果您确定您的测试用例与Jafar的相同,您能更新问题以包括它吗?给定a1与类类型一起定义,我怀疑它是否在堆栈上——至少如果给定的不完整代码能够代表实际发生的情况。