delete和delete []的疑问
new和delete是一对
new[]和delete[]是一对
两者一定要成双成对出现,否则会出错
考虑以下一个问题:
class CMy {
public:
CMy(char* pc) : m_p(pc) {}
~CMy() {
// 释放m_p指向的资源
// delete m_p; or delete []m_p; -- 这里到底用哪个delete合适呢?
}
private:
char* m_p;
};
int main() {
char* pc1 = new char('1');
CMy c1(pc1);
char* pc2 = new char[10];
CMy c2(pc2);
return 0;
}
疑问1:析构函数在释放资源时怎么知道m_p指向的是单个对象还是对象数组呢?
疑问2:如果不知道,那么到底用delete还是用delete []呢???
...全文
相关推荐
dts文件中删除一个node或属性的操作方法
1、删除Node 删除节点的语法如下: /delete-node/ 节点名; 以一个例子介绍如何删除设备节点。 注意: (1)/delete-node/与节点名之间有空格。 (2)如果节点中有地址信息,节点名后也需要加上。 EVB板中的内存配置是2GB:DDR0 1GB + DDR1 1GB xxxx.dtsi, memory_DDR0@80000000 { device_type = "memory"; reg = <0>; }; memory_DDR1@c0000000 { device_typ
C++中用new创建二维数组和指针数组实例代码
主要介绍了C++中用new创建二维数组和指针数组实例代码,非常不错,具有参考借鉴价值,需要的朋友参考下
java利用递归算法实现对文件夹的删除功能
主要介绍了java利用递归算法实现对文件夹的删除功能,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
使用sqlplus创建DDL和DML操作方法
主要介绍了使用sqlplus创建DDL和DML操作方法,需要的朋友可以参考下
C++中delete和delete[]的区别
主要介绍了C++中delete和delete[]的区别的相关资料,需要的朋友可以参考下


