C++ new和delete
在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相关推荐
- 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- ...
- Git 常用操作(6)- 推送到远程仓库(git push)删除远程分支(git push origin --delete)
1. git remote add--添加远程仓库 在GitHub 上创建的仓库路径为 "git@github.com:用户名/git-tutorial.git".现在我们用git ...
- C++ 笔记(14)— 指针(指针声明、取地址、取值、new/delete、NULL指针、指针运算、指针数组、数组指针、指针传递给函数、从函数返回指针)
1. 声明指针 指针是一个变量,其值为另一个变量的地址,即,内存位置的直接地址.就像其他变量或常量一样,您必须在使用指 针存储其他变量地址之前,对其进行声明. 指针变量声明的一般形式为: type * ...
- C++:随笔6---new\delete\虚方法\抽象方法
指针是一种专门用来存储内存地址的数据类型.(他存储的不是具体的数据而是别人的地址) 常用做法是:创建一个变量,再把这个变量的地址赋值给一个指针,然后就可以用指针去访问这个变量的值. 事实上在C和C++ ...
- C++中的new和delete用法
//个体 point *p=new point; //point类存在初始化成员函数point(void)的前提下才能这样赋值: delete p;//一维数组,这样赋值的话,p在程序里表示的就不是指 ...
- 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 ...
- 在析构函数中delete this指针问题
思考:在析构函数中delete this指针,运行下面代码会产生什么样的结果呢? #include <iostream> using namespace std; class A{ pub ...
- LSM 优化系列(四) -- Rocksdb和Lethe 对Delete问题的优化
文章目录 前言 1. 问题背景 2. 问题复现 3. Rocksdb 的 Delete-Aware 优化 3.1 可配置的 Delete-Aware调度 3.2 Compaction 逻辑对 dele ...
- 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 ...
- 【C++】C/C++ 中default/delete特性
C++类的特殊成员函数及default/delete特性 本文内容侧重个人理解,深入理解其原理推荐https://www.geeksforgeeks.org 目录 目录 C++类的特殊成员函数及def ...
最新文章
- 不信你看!这次Python和AI真的玩儿大了!!
- 快速了解Alias method/别名采样方法
- MongoDB 基本操作增删改查
- C#读取配置文件app.config
- 【Weiss】【第03章】练习3.20:中缀表达式转后缀表达式
- 如何解决复杂条件下的程序流的控制问题?
- ubuntu nginx安装
- mixin network_【译文】Mixin——以最高的安全性满足所有区块链资产的交易需求
- linux-简单进程查询
- java token身份认证_java – 基于Spring Security Token的身份验证
- 华为视频会议系统常见问题及解决方法
- Charles青花瓷抓包
- 网站域名过户查询_过期域名查询
- 看我如何自制安全的远程控制工具
- 什么?你还不知道offsetX、offsetY和clientX、clientY和pageX、pageY和screenX、screenY的区别,进来唠唠
- 静态库与动态库(共享库)的联系与区别
- MySQL JDBC PreparedStatement
- zigbee3.0 BDB 介绍(一)
- 云南省自然保护区分布及功能区划
- 天狮集团新零售有什么优势?天狮直销等于天狮新零售?
热门文章
- 计算机视觉子方向,计算机视觉方向简介 | 人脸识别中的活体检测算法综述
- libsvm python_LibSVM for Python 使用
- V4L2应用程序框架
- VxWorks系统BSP配置文件及生成下载
- mysql client 未开启_Django+mysqlclient未关闭数据库连接
- 测试鼠标双击_鼠标环境可靠性测试是什么
- 【转】C#开发笔记之05-迭代器中的状态机(State Machine)到底是什么?
- 查看mysql数据库的死锁日志_【MySQL】mysql死锁以及死锁日志分析
- 一种类的渐进式开发写法
- 关于@DateTimeFormat 和 @JsonFormat 注解