21天学通C++第八章——指针

devtools/2025/1/15 18:51:26/

C++虽然可以动态的管理内存,但是并不能像其他高级语言如JAVA、C#有自动垃圾收集器去对应用程序的内存进行清理。

常见指针错误

内存泄漏

解释:

在使用完new申请内存之后,没有配套的delete,则之后会产生内存泄漏。

即如何理解,当ptr指向new1,使用完成以后未使用delete对new1所占用的空间释放,然后又将ptr=new2,则会产生内存泄漏,即new1未被释放的同时也没有指针指向,即产生内存泄漏。

伪代码:

int* ptr = new int[5];//forget deleteptr = new int[10];//产生内存泄漏

危害:

占用内存越多,系统运行越慢,内存泄漏会占用宝贵的内存资源。

指针指向无效的内存单元

解释:

ptr中必须存放的是有效的内存地址,即*ptr为有效的数值

伪代码:

char* ptr;if(tmp=='Y')
{ptr=new char;*ptr = true;
}//出错情况一,若tmp!=Y
std::cout<<*ptr<<std::endl;//出错情况二
delete ptr;

危害:

即会产生系统崩溃

悬浮指针

解释:

即在delete之后ptr变得无效,则就不能再使用它了

指针编程最佳实践

应该

(1)初始化指针变量,若不初始化则可能不具有访问权限,产生冲突

(2)必须字指针有效时才能使用它

(3)new一定要与delete相配套

不应该

(1)delete之后不可再次访问

(2)不能对同一个地址进行多次delete

 


http://www.ppmy.cn/devtools/150402.html

相关文章

【数字化】华为-用变革的方法确保规划落地

导读&#xff1a;华为在数字化转型过程中&#xff0c;深刻认识到变革的必要性&#xff0c;并采用了一系列有效的方法确保转型规划的有效落地。华为认为&#xff0c;数字化转型不仅仅是技术层面的革新&#xff0c;更是企业运作模式、流程、组织、文化等深层次的变革。数字化转型…

Azure DevOps Server 完整介绍

1. 什么是Azure DevOps Server2. 内网部署和云端服务3. 技术架构 3.1 服务器架构3.2 扩展和定制开发3.3 客户端4. 工作项管理5. 版本管理 5.1 Team Foundation Version Control - TFVC5.2 Git6. 全文索引7. 流水线8. 测试管理9. 制品库Artifacts10. 版本路径 1. 什么是Azure De…

力扣264. 丑数 II

给你一个整数 n &#xff0c;请你找出并返回第 n 个 丑数 。丑数 就是质因子只包含 2、3 和 5 的正整数。 //用一个数组来保存第1到第n个丑数 //一个丑数必须是乘以较小的丑数的 2、3 或 5来得到。 //使用三路合并方法&#xff1a;L2、L3 和 L5三个指针遍历2、3、5倍的丑数序列…

nacos从1.x升级到2.4.3问题记录

从dockerhup拉镜像 docker pull nacos/nacos-server:latest创建宿主机数据目录 ##存放数据&#xff0c;日志&#xff0c;配置文件的目录&#xff0c;为什么要挂载&#xff0c;想想如果是mysql ##不挂载持久化数据到宿主机&#xff0c;重启数据都没了&#xff0c;这跟删库有啥区…

IP 地址与蜜罐技术

基于IP的地址的蜜罐技术是一种主动防御策略&#xff0c;它能够通过在网络上布置的一些看似正常没问题的IP地址来吸引恶意者的注意&#xff0c;将恶意者引导到预先布置好的伪装的目标之中。 如何实现蜜罐技术 当恶意攻击者在网络中四处扫描&#xff0c;寻找可入侵的目标时&…

工业过程自动化技术:控制系统、传感器、互联网、AI通信

目录 控制系统&#xff1a; 传感器与执行器&#xff1a; 工业互联网与物联网&#xff08;IIoT&#xff09;&#xff1a; 数据分析与人工智能&#xff1a; 人机界面&#xff08;HMI&#xff09;&#xff1a; 通信技术&#xff1a; 安全与可靠性&#xff1a; 更多学术&am…

浅聊MySQL中的LBCC和MVCC

MySQL中的LBCC&#xff08;Lock-Based Concurrency Control&#xff0c;基于锁的并发控制&#xff09;和MVCC&#xff08;Multi-Version Concurrency Control&#xff0c;多版本并发控制&#xff09;是两种不同的并发控制机制&#xff0c;它们在实现方式、作用以及应用场景上存…

.NET Core NPOI 导出图片到Excel指定单元格并自适应宽度

NPOI&#xff1a;支持xlsx&#xff0c;.xls&#xff0c;版本>2.5.3 XLS&#xff1a;HSSFWorkbook&#xff0c;主要前缀HSS&#xff0c; XLSX&#xff1a;XSSFWorkbook&#xff0c;主要前缀XSS&#xff0c;using NPOI.XSSF.UserModel; 1、导出Excel添加图片效果&#xff0…