我正在使用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;
}
您很可能溢出了堆栈,该堆栈的局部变量存储空间相对有限。尝试使用动态存储(使用 new
(分配它们。为了获得最大的鲁棒性,请使用智能指针(unique_ptr
(来管理指针。