new的作用
用来初始化一段堆内存,new的返回值为该段堆内存的首地址,有且仅有一个*,int*a为(int*)(a),int*代表变量指向内存为int的地址,所以a代表的是指向内存为int的地址的变量
int **a = new int[5][6];//不可执行
int **a = new int*[5];//a指向5个int*
int (*a)[6] = new int[5][6];
int *b = new int[5];
delete a;
delete []a;
//char是一个字节,int4个字节,地址变量8个字节
char **a = new char*[5];
for (int i = 0; i < 5; i++)
{
cout << a[i] <<endl;
}
cout << sizeof(char*[5])<<endl;//40,5个char*
cout << sizeof(char[5])<<endl;//5
cout << sizeof(char)<<endl;//1
cout << sizeof(char*)<<endl;//8
cout << sizeof(a)<<endl;//8
cout << sizeof(*a)<<endl;//8
cout << sizeof(**a)<<endl;//1
delete []a;
new和delete的重点在于类对象的申请和释放,调用构造函数进行初始化,调用析构函数进行释放
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
· Manus的开源复刻OpenManus初探