ain*_*ins 0 c++ dynamic-arrays dynamic-allocation
C++中的伪代码
char* data = new char[determine_size()];
// ... do some stuff with data
delete[] data;
// ... repeat process
Run Code Online (Sandbox Code Playgroud)
所以基本上,每次都会将数据重复分配给具有不同大小的新数组.虽然每次先前的分配总是先取消分配.
这会导致内存碎片吗?
我对C++中的内存管理不是很熟悉; 我的直觉告诉我这不是一个好主意.
你问,
"这会导致内存碎片吗?"
内存分配对于发生碎片是必要的,但这还不够.
即它取决于很多事情,包括分配模式和内存管理器.
如上所述,这个问题真的无法回答.
但仍然可以给出一些好的建议.
不要使用原始数组new,而是使用eg std::vector和std::string.