new出的对象数组必须要用delete[]删除,而普通数组delete和delete[]都一样
来源:互联网 发布:中国出境旅游历年数据 编辑:程序博客网 时间:2024/05/01 03:05
转载自http://www.cnblogs.com/sura/archive/2012/07/03/2575448.html
1.在释放堆栈中c++基本数据(包括int,char…..结构体等)的存储空间时,不管是否是数组用delete都不会有错!而且能正常释放所有内存,不会导致内存泄露!
2)对象数组不能用delete,只能用delete[];
// 程序B class CTextClassA {public: int m_num; CTextClassA() { m_num=0; }; ~CTextClassA() { cout<<"~CTextClassA()"<<endl; } void SetNum(int n) { m_num=n; } }; int _tmain(int argc, _TCHAR* argv[]) { CTextClassA *pa=new CTextClassA; CTextClassA *pas=new CTextClassA[5]; CTextClassA *pas_arr[5]; for(int i=0;i<5;i++) { pas[i].SetNum(i); pas_arr[i]=&pas[i]; cout<<"pas"<<i<<":"<<pas[i].m_num<<"\t"; } delete pa; delete pas; }
在release下运行,没有出现上面那个错误提示窗口!但是输出结果是一样的!数组里5个对象只有第一个对象,运行了析构函数!事实证明2的断言同样也是正确的!OK!
阅读全文
0 0
- 为何new出的对象数组必须要用delete[]删除,而普通数组delete和delete[]都一样-------_CrtMemBlockHeader
- 为何new出的对象数组必须要用delete[]删除,而普通数组delete和delete[]都一样
- 为何new出的对象数组必须要用delete[]删除,而普通数组delete和delete[]都一样
- 为何new出的对象数组必须要用delete[]删除,而普通数组delete和delete[]都一样-------_CrtMemBlockHeader
- 为何new出的对象数组必须要用delete[]删除,而普通数组delete和delete[]都一样-------_CrtMemBlockHeader
- 为何new出的对象数组必须要用delete[]删除,而普通数组delete和delete[]都一样-------_CrtMemBlockHeader
- 为何new出的对象数组必须要用delete[]删除,而普通数组delete和delete[]都一样-------_CrtMemBlockHeader
- new出的对象数组必须要用delete[]删除,而普通数组delete和delete[]都一样
- new出的对象数组必须要用delete[]删除,而普通数组和结构数组delete和delete[]都一样
- new和delete数组类型
- new/delete和对数组的重命名
- 二维数组的new 和 delete
- 用于数组的new和delete
- c++ 的用 new 和delete 进行二维数组动态内存的创建和删除
- C++ 用new 、delete 动态创建、删除数组
- C++里 数组new 和delete问题
- 使用new和delete创建二维数组
- 数组的动态分配(new)、初始化(memset)和撤销(delete)
- 关于Android中的elevation阴影显示条件
- phpstorm输出汉字,本地浏览器输出汉字为乱码,而英文和数字没问题怎么办?
- 登录Linux的 -bash-4.2$ 问题
- axios window.open 拦截处理方法
- 解决linux 出现如下报错:Another app is currently holding the yum lock;
- new出的对象数组必须要用delete[]删除,而普通数组delete和delete[]都一样
- oracle 索引
- Lunix java web服务器配置--suse 11 为例
- springMVC 实体类的时间字符串映射注解
- Hive的架构,设计,安装
- 三进金蝶软件园,记我的面试之旅
- springmvc多个拦截器中拦截器方法的执行顺序
- 【数据结构专题-02】算法介绍
- 05:输出保留12位小数的浮点数