问题描述
- c++语法new与delete问题
-
CBase*d2=new CBase[1];delete[] d2;和
CBase*d2=new CBase;delete d2;
和
CBase*d2=new CBase[1];delete d2;
和
CBase*d2=new CBase;delete[] d2;
分别有什么区别
解决方案
用new分配的内存块就要用delete释放,用new[]分配的内存块就要用delete[]释放,即使[]内是1!不要匹配错了
解决方案二:
对象分配是数组方式还是单个方式。
通用的规则就是new的时候用数组[], 那么释放的时候就是delete[]
否则就是new 对应delete
时间: 2024-09-21 09:24:52