【发布时间】:2010-04-01 02:54:14
【问题描述】:
关于 C++ 内存管理的快速问题
如果我执行以下操作:
pointer = new char [strlen(someinput_input)+1];
然后再次执行,可能会从strlen(someinput_input) 返回不同的结果。
这是否会导致从前面的“new”语句中分配内存?例如,每个 new 语句是从操作系统接收另一块 HEAP 内存,还是只是重新分配?
假设我做一个最终的delete pointer[];,是否会将我曾经通过new分配给该指针的所有内存释放?
【问题讨论】:
-
回收内存取决于平台/操作系统,不同平台之间可能不同。一旦内存为
deleted 或freed,由平台负责,如果可能,何时重用。
标签: c++ memory-management new-operator