0

我试图构造数组以放置新的。

我在互联网上搜索只能找到使用放置新的构造一个数组。但是如果我想要数组数组呢?

我不确定如何构造内部数组。

内存管理器构造函数已经分配了大尺寸的缓冲区

内存管理器析构函数有删除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

4

0 回答 0