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

news/2025/1/15 3:31:18/

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/news/1563210.html

相关文章

苹果电脑怎么清理后台,提升苹果电脑运行速度

苹果电脑以其流畅的系统和高效的性能备受用户青睐&#xff0c;但即使是性能强大的Mac&#xff0c;随着使用时间的增长&#xff0c;也会遇到运行变慢、卡顿的问题。造成这种现象的一个主要原因是后台运行的程序和进程过多&#xff0c;占用了系统资源。那么&#xff0c;苹果电脑怎…

【C语言】标准IO

目录 1. 什么是标准IO 1.1概念 1.2特点 1.3 操作 2. 缓存区 3. 函数接口 3.1打开文件fopen 3.2关闭文件 3.3读写文件操作 3.3.1每次读写一个字符&#xff1a;fgetc()、fputc() a. 针对文件 b. 针对终端 3.3.2 每次一串字符的读写fgets()和fputs() c. 针对终端 d…

Spring Cloud Alibaba - Nacos理论面试总结-未完结

临时实例和永久实例 临时实例和永久实例在 Nacos 中是一个非常非常重要的概念 之所以说它重要&#xff0c;主要是因为我在读源码的时候发现&#xff0c;临时实例和永久实例在底层的许多实现机制是完全不同的 临时实例 临时实例在注册到注册中心之后仅仅只保存在服务端内部一…

【数学】概率论与数理统计(五)

文章目录 [toc] 二维随机向量及其分布随机向量离散型随机向量的概率分布律性质示例问题解答 连续型随机向量的概率密度函数随机向量的分布函数性质连续型随机向量均匀分布 边缘分布边缘概率分布律边缘概率密度函数二维正态分布示例问题解答 边缘分布函数 二维随机向量及其分布 …

IDEA中创建maven项目

1. IDEA中创建maven项目 在IDEA中创建Maven项目&#xff0c;前提是已经安装配置好Maven环境。如还未配置安装Maven的&#xff0c;请先下载安装。如何下载安装&#xff0c;可参考我另外篇文章&#xff1a;maven的下载与安装教程本篇教程是以创建基于servlet的JavaWeb项目为例子&…

JS点击对应复选框,对应内容区域隐藏

如果页面上的内容是正常显示的&#xff0c;则复选框默认勾选 点击复选框之后对应的区域就会隐藏 <div class"setting"><img src"./img/setting.png" alt""><div class"setBox"><label for"idBox" styl…

Pytest安装Allure生成自动化测试报告

Date: 2025.01.09 16:33:01 author: lijianzhan Allure 是一个强大的测试报告框架&#xff0c;能够生成美观且详细的测试报告。它与 pytest 结合使用&#xff0c;可以帮助你更好地展示测试结果、分析测试数据&#xff0c;并提高测试的可读性和可维护性。以下是关于如何在 Pytho…

HTTP/HTTPS ④-对称加密 || 非对称加密

这里是Themberfue ✨HTTP协议的大体内容我们已经讲完了 ❤️本章我们将聊聊HTTPS中的 S 那些事儿 HTTPS简介 ✨在前三篇文章中&#xff0c;我们主要讲解了HTTP协议的简单介绍以及其报文的键值对含义等。比较于HTTP&#xff0c;HTTPS有什么不同呢&#xff1f;它们两者又有什么…