我正在使用gdb调试一个简单的C ++脚本,并在我尝试初始化temp_grid
时看到我收到错误。我尝试通过运行
g++ -Wall initial.cc -o initial
有没有办法通过脚本中的某些东西来避免这种分段错误?
#include <iostream>
#include <array>
#include <valarray>
#include <stdlib.h>
#include <memory>
using namespace std;
int main()
{
using std::array;
array<array<float, 1024>, 1024> grid ={};
// temp grid
array<array<float, 1024>, 1024> temp_grid ={};
return 0;
}
答案 0 :(得分:5)
您最有可能溢出堆栈,该堆栈的局部变量存储空间相对有限。尝试使用动态存储分配它们(使用new
)。为了获得最大的稳健性,请使用智能指针(unique_ptr
)来管理指针。