正文
在说明使用new[]申请内存,而使用delete释放的问题之前,先了解new[] 和 delete[] 的工作方式。
一.new[]
1.调用operator new[] ,由operator new[]调用n次operator new 来分配n个对象的空间。
2.调用n次构造函数。
二.delete[]
1.调用n次析构函数。
2.调用operator delete[] ,由operator delete[]调operator delete来释放空间。
先探究一下是否真的是这样的:
#include<stdio.h>
#include<stdlib.h>
class A
{
public:
int a;
~A()
{
printf("A析构\n");
}
};
void operator delete(void* p)
{
printf("释放内存\n");
free(p);
}int main()
{
A* p &#