2015-11-24 116 views
0

我开始使用flatbuffer库。但是在删除缓冲区时,有一件事情让我感到不舒服。我不知道通过它的根指针元素来删除缓冲区。如果这是可能的根本指针可以采取分配空间的所有权和我没有理会终身-问题(叼着根指针,内存泄漏,...)flatbuffers:是否可以通过根指针删除缓冲区

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

根指针指向的位置里面的缓冲区不在已知的偏移位置,所以不可以,通过它删除缓冲区。要删除缓冲区,您必须使用原始缓冲区指针。