我开始使用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的内容
答案 0 :(得分:0)
根指针指向内部内的位置不在已知偏移量的缓冲区,所以不,你不能通过它删除缓冲区。要删除缓冲区,必须使用原始缓冲区指针。