在C语言中,动态分配内存用 malloc() 函数,释放内存用 free() 函数。如下所示:

int *p = (int*) malloc( sizeof(int) * 10 ); //分配10个int型的内存空间free(p); //释放内存

在cpp中,这两个函数仍然可以使用,但是C++又新增了两个关键字,new 和 delete:new 用来动态分配内存,delete 用来释放内存。

用 new 和 delete 分配内存更加简单:

int *p = new int; //分配1个int型的内存空间delete p; //释放内存

new 操作符会根据后面的数据类型来推断所需空间的大小。

如果希望分配一组连续的数据,可以使用 new[]:

int *p = new int[10]; //分配10个int型的内存空间delete[] p;

用 new[] 分配的内存需要用 delete[] 释放,它们是一一对应的。

和 malloc() 一样,new 也是在堆区分配内存,必须手动释放,否则只能等到程序运行结束由操作系统回收。为了避免内存泄露,通常 new 和 delete、new[] 和 delete[] 操作符应该成对出现,并且不要和C语言中 malloc()、free() 一起混用。

C++ new和delete相关推荐

  1. Reject: HTTP ‘DELETE‘ is not allowed, Not injecting HSTS.....DELETE请求PUT请求跨域问题

    CORS(DELETE请求.PUT请求) Reject: HTTP 'DELETE' is not allowed [DEBUG] 2021-08-25 15:23:52.401 [http-nio- ...

  2. Git 常用操作(6)- 推送到远程仓库(git push)删除远程分支(git push origin --delete)

    1. git remote add--添加远程仓库 在GitHub 上创建的仓库路径为 "git@github.com:用户名/git-tutorial.git".现在我们用git ...

  3. C++ 笔记(14)— 指针(指针声明、取地址、取值、new/delete、NULL指针、指针运算、指针数组、数组指针、指针传递给函数、从函数返回指针)

    1. 声明指针 指针是一个变量,其值为另一个变量的地址,即,内存位置的直接地址.就像其他变量或常量一样,您必须在使用指 针存储其他变量地址之前,对其进行声明. 指针变量声明的一般形式为: type * ...

  4. C++:随笔6---new\delete\虚方法\抽象方法

    指针是一种专门用来存储内存地址的数据类型.(他存储的不是具体的数据而是别人的地址) 常用做法是:创建一个变量,再把这个变量的地址赋值给一个指针,然后就可以用指针去访问这个变量的值. 事实上在C和C++ ...

  5. C++中的new和delete用法

    //个体 point *p=new point; //point类存在初始化成员函数point(void)的前提下才能这样赋值: delete p;//一维数组,这样赋值的话,p在程序里表示的就不是指 ...

  6. LeetCode刷题记录3——237. Delete Node in a Linked List(easy)

    LeetCode刷题记录3--237. Delete Node in a Linked List(easy) 目录 LeetCode刷题记录3--237. Delete Node in a Linke ...

  7. 在析构函数中delete this指针问题

    思考:在析构函数中delete this指针,运行下面代码会产生什么样的结果呢? #include <iostream> using namespace std; class A{ pub ...

  8. LSM 优化系列(四) -- Rocksdb和Lethe 对Delete问题的优化

    文章目录 前言 1. 问题背景 2. 问题复现 3. Rocksdb 的 Delete-Aware 优化 3.1 可配置的 Delete-Aware调度 3.2 Compaction 逻辑对 dele ...

  9. leetcode 237: Delete Node in a Linked List

    题目: Write a function to delete a node (except the tail) in a singly linked list, given only access t ...

  10. 【C++】C/C++ 中default/delete特性

    C++类的特殊成员函数及default/delete特性 本文内容侧重个人理解,深入理解其原理推荐https://www.geeksforgeeks.org 目录 目录 C++类的特殊成员函数及def ...

最新文章

  1. 对 makefile中 order-only 前提条件的理解
  2. QT Creator应用程序开发——信号与槽
  3. Linux中查看负载
  4. java 和javafx_Java,JavaFX的流利设计风格文本字段和密码字段
  5. c语言 将点同时保证x坐标从小到大,y坐标从小到大地排序,C语言第五六次作业.ppt...
  6. 在Ubuntu下创建hadoop组和hadoop用户
  7. Network Request Failed
  8. db2 jdbc驱动参数_JDBC详细整理(一)
  9. java unsigined short_LDD之数据类型
  10. Jw-alipay 1.0.0版本发布,开源支付窗管理平台
  11. Spring MVC文件上传示例教程 - 单个和多个文件
  12. 利用PHP安装windows自动运行的服务,PHP程序可以实现长时间、自动运行、定时更新功能,直接可以用在项目中的类源代码...
  13. 机器人局部避障的动态窗口法(dynamic window approach)
  14. 用aspectJ 做了一次日志
  15. 关于Lazarus下PowerPDF控件的使用
  16. IOS Core ML如何把输入从MLMultiArray转换为image
  17. java 调用宏_通过java代码实现调用excel当中的宏的操作。
  18. 【第三十一期】360后台开发实习面经 - 两轮技术面
  19. Grid++ Report6.5使用
  20. win10输入法添加美式键盘(符合Win7习惯)

热门文章

  1. python 地址_python 解析地址 | 学步园
  2. ip地址异常判定python_python检测异常ip,并查询ip详细信息
  3. A20 init.sun7i.rc 文件
  4. java 幽灵引用_Java 幽灵引用的作用
  5. php如何操作mysql数据库代码_php如何操作mysql数据库的类(附代码)
  6. 如何导入maven源文件_如何正确导入maven项目到eclipse?
  7. 制作斜坡单元的两种方法
  8. 【转】D365 FO第三方集成(三)---服务实现
  9. 第六节:WebApi的部署方式(自托管)
  10. Kafka幂等性与事务