0

我从磁盘读取压缩数据,解压缩它,然后创建一个从 FlatBuffer 方案生成的“单元”对象。

Cell* getCell(int x, int y, int z) {
     // ...
    return GetCell(buffer); // buffer is an inflated uint_8 data array 
}

到目前为止,一切都很好。但是如何删除该项目?因为以后不可能访问缓冲区数据。

4

1 回答 1

1

您需要单独保留缓冲区才能将其删除,因为您无法从根指针(在本例中Cell *)派生缓冲区指针。正如您自己所说,您不能破坏Cell *任何一个,因为它不拥有该内存。

编辑:显然,这样的功能是可能的,请参阅:https ://github.com/google/flatbuffers/commit/6862b2ff08021c7ba474334a6e2a3f3b1fc0dee5 这从根指针派生一个缓冲区指针。

于 2016-10-15T20:26:46.030 回答