当前位置: 首页 > news >正文

【C++ Primer Plus学习记录】指针——使用delete释放内存

当需要内存时,可以使用new来请求,使用完内存后,可以使用delete将其归还给内存池。

归还或释放(free)的内存可供程序的其他部分使用。

使用delete时,后面要加上指向内存块的指针(这些内存块最初是用new分配的)。

int * ps = new int; //allocate memory with new
... //use the memory
delete ps;//free memory with delete when done

这将释放ps指向的内存,但不会删除指针ps本身。

一定要配对使用new和delete;否则将发生内存泄漏(memory leak),即被分配的内存再也无法使用了。如果内存泄漏严重,则程序将由于不断寻找更多内存而终止。

不要尝试释放已经释放的内存块,C++标准指出,这样做的结果将是不确定的。

不能使用delete来释放声明变量所获得的内存,只能用delete来释放使用new分配的内存。

对空指针使用delete是安全的。

int * ps = new int;   //ok
delete ps;            //ok
delete ps;            //not ok now
int jugs = 5;         //ok
int *pi = &jugs;      //ok
delete pi;            //not allowed,memory allocated by new 

http://www.lryc.cn/news/189053.html

相关文章:

  • 2023 NOIP A层联测9 - 风信子 题解
  • 岩土工程安全监测无线振弦采集仪在无线组网的关键要点
  • 代码随想录Day14 LeetCodeT110平衡二叉树 T257二叉树的所有路径 T404 左叶子之和
  • C语言自定义类型_枚举联合(3)
  • asp.net网上销售系统VS开发mysql数据库web结构c#编程Microsoft Visual Studio计算机毕业设计
  • 【Windows】RPC调用过程实例详解
  • 动手学强化学习第2章多臂老虎机
  • 钡铼BL124EC实现EtherCAT转Ethernet/IP的优势
  • 使用IntelliJ Idea必备的插件!
  • 代码随想录算法训练营第23期day19| 654.最大二叉树、617.合并二叉树、700.二叉搜索树中的搜索、98.验证二叉搜索树
  • 第四章 字符串part02 28. 实现strStr() 459. 重复的子字符串
  • 设计模式 - 状态模式
  • 【vim 学习系列文章 9 -- .vim 脚本文件开发学习】
  • NAT模式和桥接模式的区别
  • 应对出海安全合规挑战,兆珑科技为什么选择了亚马逊云科技?
  • Allegro基本规则设置指导书之Spacing规则设置
  • 使用【Blob、Base64】两种方式显示【文本、图片、视频】 使用 video 组件播放视频
  • 深度学习_1_基本语法
  • c#设计模式-行为型模式 之 中介者模式
  • 小程序uView2.X框架upload组件上传方法总结+避坑
  • 人脸检测及追踪回顾
  • 虚拟环境和包
  • springboot配置文件读取
  • 纵享丝滑!Cesium + ffmpegserver 生成高质量动态视频【逐帧生成】
  • Linux下C++编程-进度条
  • C语言常见题目(1)交换两个变量的值,数的逆序输出,猜数游戏,两个数比较大小等
  • Springboot使用sqlcipher4加密sqlite数据库
  • 指针拔尖(2)(巩固提高,全网最牛,包会,看不懂带电脑来找我)
  • 本地部署多语言代码生成模型CodeGeeX2
  • C语言刷题练习(Day2)