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