我试图构造数组以放置新的。
我在互联网上搜索只能找到使用放置新的构造一个数组。但是如果我想要数组数组呢?
我不确定如何构造内部数组。
内存管理器构造函数已经分配了大尺寸的缓冲区
内存管理器析构函数有删除buff
节点运算符新重载已经实现
这是我的代码
map_size_x = terrain->get_map_width();
map_size_y = terrain->get_map_height();
grid_map = new Node *[map_size_x];
for (int i = 0; i < map_size_x; ++i)
{
//grid_map[i] = new Node[map_size_y];
grid_map[i] = new( buf + i * sizeof(Node)) Node;
}
buf 是 char * 已经在内存管理器等其他类中分配了大容量内存,应该足以适应 sizeof Node * 宽度和高度。
在 Node 类中实现了新的运算符重载,即
void *AStarPather::Node::operator new(std::size_t size, void* buffer)
{
return buffer;
}
结果似乎分配失败并且程序卡住了,但没有崩溃。我正在使用 Visual Studio 2017