关于C++中的内存管理,我有一个快速的问题。
如果我执行以下操作:
pointer = new char [strlen(someinput_input)+1];
然后再执行它,可能会从strlen(someinput_input)
返回不同的结果。
这样做会导致之前"new
"语句分配的内存仍然留在那里吗?也就是说,每个new
语句是从操作系统接收到另一个堆内存块,还是只是重新分配内存?
假设我最后使用delete pointer[];
,这样是否可以释放我曾经通过new
分配给该指针的所有内存?