`
kmplayer
  • 浏览: 494991 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

条款5:使用相同形式的new和delete

 
阅读更多
1,delete的最大问题在于:即将被删除的内存究竟存有多少个对象?它决定有多少个destructor必须被调用.
2,delete删除单个对象;
delete[]删除的对象是个数组.
#include <iostream>
using namespace std;

int main()
{
    string* string1=new string;
    string* string2=new string[100];
    delete string1;//删除一个对象
    delete[] string2;//删除整个对象数组
    //delete[]string1; 结果未定义
    //delete string2;  结果未定义
    return 0;
}

3,最好不要对数组型别作typedef.
如:typedef string Address[4];
此时Address a;相当于 string a[4];
分享到:
评论

相关推荐

    Effective.C++.中文第二版.50条款doc文档.chm

    条款5:对应的new和delete要采用相同的形式 条款6:析构函数里对指针成员调用delete 条款7:预先准备好内存不够的情况 条款8: 写operator new和operator delete时要遵循常规 条款9: 避免隐藏标准形式的new 条款10: ...

    Effective C++

    条款5:对应的NEW和DELETE要采用相同的形式 条款6:析构函数里对指针成员调用DELETE 条款7:预先准备好内存不够的情况 条款8:写OPERATOR NEW与OPERATOR DELETE要遵循常规 条款9:避免隐藏标准形式的NEW 条款10:如果写了...

    C++内存管理详解,new,delete的合理使用

    对应的new和delete要采用相同的形式 下面的语句有什么错? string *stringarray = new string[100]; ... delete stringarray; 一切好象都井然有序——一个new对应着一个delete——然而却隐藏着很大的错误:程序的...

    使用new和delete创建二维数组

    使用new和delete创建二维数组,作业习题中的一道,希望能有所帮助

    C++中new/delete与new[]/delete[]的使用区别

    编写代码,举例说明new/delete与new[]/delete[]在创建对象时申请内存,以及释放空间时的区别

    用new和delete运算符动态分配内存空间的方法编写程序。

    用new和delete运算符动态分配内存空间的方法编写程序。从键盘输入33整型数组的数据,并计算出所有元素之和,打印出最大值和最小值。输入输出要用流运算符实现。

    Effective C++(第三版)

    条款16:成对使用new和delete时要采取相同形式 use the same form in corresponding uses of new and delete. 条款17:以独立语句将newed对象置入智能指针 store newed objects in smart pointers in standalone ...

    effective stl stl 技巧

    条款5:尽量使用区间成员函数代替它们的单元素兄弟" 条款6:警惕C++最令人恼怒的解析 条款7:当使用new得指针的容器时,记得在销毁容器前delete那些指针 条款8:永不建立auto_ptr的容器 条款9:在删除选项中...

    effective stl 中文 pdf

    条款5: 尽量使用范围成员函数代替他们的单元素兄弟 条款6: 警惕C++的及其令人恼怒的分析 条款7: 当使用new得指针的容器时,切记在容器销毁前delete那些指针 条款8: 千万不要把auto_ptr放入容器中 条款9: 小心...

    C++ 使用new与delete需注意的原则

    在使用new和delete时,注意以下原则。 1.new与delete需一一对应 用new操作申请空间,如果申请成功,必须在以后的某个时刻用delete释放该空间,既不能忘记释放,也不能多次释放。前者会引起内存泄露,后者会引起运行...

    EffectiveC++ and more Effective C++

     ·条款八:理解各种不同含义的new和delete  ·条款九:使用析构函数防止资源泄漏  ·条款十:在构造函数中防止资源泄漏  ·条款十一:禁止异常信息(exceptions)传递到析构函数外  ·条款十二:理解...

    Effictive STL CHM中文版

    条款5: 尽量使用范围成员函数代替他们的单元素兄弟 条款6: 警惕C++的及其令人恼怒的分析 条款7: 当使用new得指针的容器时,切记在容器销毁前delete那些指针 条款8: 千万不要把auto_ptr放入容器中 条款9: 小心...

    动态内存分配操作符new和delete

    动态内存分配操作符new和delete,以及new[]和delete[]

    VC8.0上new/delete分析

    汇编级分析了VC8.0下new / delete

    c++语言,new和delete

    有关于c++方面new和delete的用法及关注

    new delete二维数组

    new delete二维数组,new delete二维数组,new delete二维数组,new delete二维数组,new delete二维数组,new delete二维数组

    Effective STL(中文)

    使容器里对象的拷贝操作轻量而正确 条款4:用empty来代替检查size()是否为0 条款5:尽量使用区间成员函数代替它们的单元素兄弟 条款6:警惕C++最令人恼怒的解析 条款7:当使用new得指针的容器时,...

    C++之new和delete表达式

    C++之new和delete表达式

    关于new和delete的详细用法

    关于new和delete的详细用法。详细用法哟!new是C++的一个关键字,同时也是操作符。关于new的话题非常多,因为它确实比较复杂,也非常神秘,

    浅析c++中new和delete的用法

    new和delete运算符用于动态分配和撤销内存的运算符 new用法: 1.开辟单变量地址空间1)new int; //开辟一个存放数组的存储空间,返回一个指向该存储空间的地址.int *a = new int 即为将一个int类型的地址赋值给整型...

Global site tag (gtag.js) - Google Analytics