我从磁盘读取压缩数据,解压缩它,然后创建一个从 FlatBuffer 方案生成的“单元”对象。
Cell* getCell(int x, int y, int z) {
// ...
return GetCell(buffer); // buffer is an inflated uint_8 data array
}
到目前为止,一切都很好。但是如何删除该项目?因为以后不可能访问缓冲区数据。
我从磁盘读取压缩数据,解压缩它,然后创建一个从 FlatBuffer 方案生成的“单元”对象。
Cell* getCell(int x, int y, int z) {
// ...
return GetCell(buffer); // buffer is an inflated uint_8 data array
}
到目前为止,一切都很好。但是如何删除该项目?因为以后不可能访问缓冲区数据。
您需要单独保留缓冲区才能将其删除,因为您无法从根指针(在本例中Cell *
)派生缓冲区指针。正如您自己所说,您不能破坏Cell *
任何一个,因为它不拥有该内存。
编辑:显然,这样的功能是可能的,请参阅:https ://github.com/google/flatbuffers/commit/6862b2ff08021c7ba474334a6e2a3f3b1fc0dee5 这从根指针派生一个缓冲区指针。