C++中的delete和delete[]
来源:互联网 发布:淘宝客服主管工作计划 编辑:程序博客网 时间:2024/05/16 03:15
1. 当你使用new时,有两件事会发生。第一,内存被配置(透过函数operator new)。第二,会有一个(或以上)的constructors针对此内存被调用。当你使用delete时,也有两件事发生:一个(或以上)的destructors会针对此内存被调用,然后内存被释放(透过函数operator delete)。
2. 如果你使用delete是未加括号,delete便假设删除对象是单一对象。否则便假设删除对象是个数组。
3. string *stringPtr1 = new string;
string *stringPtr2 = new string[100];
……
delete stringPtr1;
delete [] stringPtr2;
如果你对着stringPtr1使用“[]”形式,其结果未定义。如果你对着stringPtr2没有使用“[]”形式,其结果亦未定义。犹有进者,这对内建型别如int者亦未定义,即使这类型别并没有destructors。
4. 因此,游戏规则很简单,如果你在调用new时使用了[],则你在调用delete时也使用[],如果你在调用new的时候没有[],那么你也不应该在调用时使用[]。
- C ++ delete 和delete[]
- c++中的delete和delete[]
- c++中的delete和delete[]
- VC中的delete和delete[]
- C++中的delete和delete[]
- C++中的delete和delete[]
- [C++] 关于delete和delete[]
- C++delete和delete[]区别
- 【c/c++】delete和delete[]详解
- C++:new和delete
- new和delete【C++】
- c++中的delete和delete[](转)
- C++中的delete和delete[]区别
- C++中的delete和delete[]的区别
- C++中的delete和delete[]的区别
- C++ 中的 new/delete 和 new[]/delete[]
- C++中的delete和delete[]的区别
- C++中的delete和delete[]的区别
- HTMLParser使用详解
- EXCEL 导入数据到数据库表
- dwr整合spring
- 制作U盘XP系统母盘实战
- Foreach循环--Nodelist枚举XML节点
- C++中的delete和delete[]
- c/c++内存分配与内存对齐
- java学习札记(6)-java导入包 & JAR用法
- 分布式数据库概述
- 一个崭新的在线客服软件闪亮登场~
- shell 输入与输出
- AIX的WEBLOGIC下发证书失败问题
- C语言宏定义详解
- EXCEL模板的上传个下载