C++伪代码
char* data = new char[determine_size()];
// ... do some stuff with data
delete[] data;
// ... repeat process
所以基本上,数据每次都被重复分配到一个不同大小的新数组中。尽管每次以前的分配总是首先取消分配。
会不会造成内存碎片?
我不太熟悉 C++ 中的内存管理;我的直觉告诉我这不是个好主意。
最佳答案
你问,
“Would this lead to memory fragmentation?”
好吧,内存分配对于碎片化的发生是必要的,但这还不够。
即它取决于,取决于很多因素,包括分配模式和内存管理器。
如前所述,这个问题确实无法回答。
但还是可以给出一些好的建议。
不要使用原始数组和new
,而是使用例如std::vector
和 std::string
。
关于c++ - 会在动态中重复分配一个 char 数组导致问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14179102/