我正在开发一个代码,其中需要声明大小为150000的double的数组,并且当一个数组声明代码正在成功运行时.如果我们声明两个数组然后执行它终止抛出异常.
Code is :
double a[150000];
double b[150000];
Run Code Online (Sandbox Code Playgroud)
如果我们声明一个只有它然后它完美地执行.如果声明a和b然后它终止.谁能建议如何解决这个问题?
这两个数组溢出堆栈(假设它们是局部变量).为数组动态分配内存,使用a std::vector来管理内存:
std::vector<double> a(150000);
std::vector<double> b(150000);
Run Code Online (Sandbox Code Playgroud)
即使std::vector实例位于堆栈上,也会在std::vector内部为堆上的数据动态分配内存,从而避免堆栈溢出.
| 归档时间: |
|
| 查看次数: |
329 次 |
| 最近记录: |