我试图构造要放置新的数组的数组。
我在Internet上搜索只能使用new放置来找到构造数组。但是,如果我要使用数组数组怎么办?我不确定如何构造内部数组。
内存管理器构造函数已经分配了大容量缓冲区
内存管理器析构函数具有删除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