0

C++ 中的伪代码

char* data = new char[determine_size()];
// ... do some stuff with data
delete[] data;
// ... repeat process

所以基本上,数据每次都被重复分配给一个不同大小的新数组。尽管每次之前的分配总是首先被取消分配。

这会导致内存碎片吗?

我对 C++ 中的内存管理不是很熟悉;我的直觉告诉我这不是一个好主意。

4

1 回答 1

6

你问,

“这会导致内存碎片吗?”

内存分配是产生碎片所必需的,但这还不够

它取决于很多事情,包括分配模式和内存管理器。

如前所述,这个问题确实无法回答。

但是仍然可以给出一些好的建议。

不要使用原始数组 and new,而是使用例如std::vectorand std::string

于 2013-01-06T03:58:11.160 回答