美文网首页
c++中的new和delete

c++中的new和delete

作者: 潘雪雯 | 来源:发表于2020-05-19 13:49 被阅读0次

用法。

  • new初始化
    new int;开辟一个存放整数的存储空间,返回一个指向该存储空间的地址(即指针)。
    new int(100);开辟一个存放整数的存储空间,并指定该整数的初值为100,返回一个指向该存储空间的地址(即指针)。
int *p = (int *)malloc(sizeof(int));
*p = 10;
int *p2 = new int;//分配基础类型
*p = 20;    
int *p3 = new int(30);

new char[10];开辟一个存放字符数组的存储空间,返回首元素的地址(即指针)
new int[5][4];开辟一个存放二维整型数组的空间,返回一首元素的地址(即指针)

int *p = (int *)malloc(sizeof(int) * 10);
p[0] = 1;
free(p);
//c++分配数组
int *pArray = new int[10];
pArray[1] = 2;
delete [] pArray;//数组不要把[]忘记 

*float p = new float(3.14159)开辟一个存放单精度数的空间,并指定该实数的初值为3.14159,将返回该空间的地址(即指针)赋给指针变量p。

  • new和delete运算符使用格式:


    image.png
  • 用new分配数组空间时不能指定初值,用户可以根据指针的值判断分配空间是否成功。
  • 执行delete运算符时,在释放内存空间之前,自动调用析构函数,完成相关善后清理工作。

new、delelte和malloc、free的不同点

  1. c语言中malloc和free是库函数,
    c++中new和delete是运算符
  2. malloc不会调用类的析构函数,new能执行类的构造函数
    free不会调用类的析构函数,delete能执行类的析构函数
  3. new和delete操作符分配内存成功时返回对象类型的指针,分配失败时会抛出bac_alloc异常,不会返回NULL。
  4. 申请的内存所在位置: new从自由存储区上为对象动态分配内存,malloc函数从堆上动态分配内存
  5. new操作符申请内存分配时无须指定内存块的大小,编译器会根据类型信息自行计算,而malloc需要显示的指出所需内存的尺寸malloc(sizeof(A))

相关文章

  • new失败抛出异常吗?

    new/delete 在C++中动态分配与释放内存是通过new/delete和new []/delete []实现...

  • C++内存

    认识C++内存 operator new, operator delete和new, delete operato...

  • 面试准备

    C++面试总结 New、Delete和malloc、free的区别? New和Delete自动调用 构造函数 和 ...

  • C++的new和delete详解

    new和delete的内部实现 C++中如果要在堆内存中创建和销毁对象需要借助关键字new和delete来完成。比...

  • c++ new 和delete的种种

    new/delete动态管理对象,new[]/delete[]动态管理对象数组。 C++中,把int 、char....

  • Boolan C++ 第五周 new和delete

    一、new和delete new和delete 是C++ 动态分配和释放内存的重要方式。当new一个对象时 先分配...

  • delete 和 delete []

    每一本 C++ 教材上都会告诉你,使用new,new [],delete 和 delete [] 的时候必须要配对...

  • c++中的new和delete

    用法。 new初始化new int;开辟一个存放整数的存储空间,返回一个指向该存储空间的地址(即指针)。new i...

  • Effective c++学习笔记(item16)对成对的new

    Effective c++学习笔记(item16)对成对的new和delete使用相同的形式 new 和new[]...

  • C++<第二十二篇>:new和delete运算符

    new 和 delete 是C++在C之后新增的两个运算符,new用来分类内存,delete用来释放内存。 (1)...

网友评论

      本文标题:c++中的new和delete

      本文链接:https://www.haomeiwen.com/subject/mnfbohtx.html