flatbuffers:是否可以通过root-pointer删除缓冲区

时间:2015-11-24 09:08:20

标签: c++ flatbuffers dangling-pointer

我开始使用flatbuffer库了。但是在删除缓冲区时,有一件事让我觉得不舒服。我不知道通过它的root-pointer-element删除缓冲区。如果这是可能的话,根指针可以获得所分配空间的所有权,而且我不必担心生命周期问题(悬挂根指针,内存泄漏......)

std::uint_8* buffer = get_buffer_for_exaple_from_file("my_monster.bin");
auto monster = MyGame::Sample::GetMonster(buffer);
///monster points somewhere in buffer

...

///now this would be very handy
delete_buffer(monster);                 ///buffer is deleted
问:是否有可能(可能受到一些限制,因为怪物不可变等)写下类似delete_buffer的内容

1 个答案:

答案 0 :(得分:0)

根指针指向内部内的位置不在已知偏移量的缓冲区,所以不,你不能通过它删除缓冲区。要删除缓冲区,必须使用原始缓冲区指针。