14.空指针悬空指针野指针
发表于|更新于|C++
|总字数:242|阅读时长:1分钟|浏览量:
指针
野指针
野指针就是未进行初始化的指针,你不知道这个指针变量里面的内容是什么,一般是最近一次这块内存上面的内容,也就是说不知道用这个指针访问的内存是哪一块,所以指针初始化的时候要typename * p = nullptr;
悬空指针
悬空指针就是将这个指针指向的内存已经释放了,却没有对指针进行赋空,因为C++并没有垃圾回收机制,你delete了一个指针只是释放了指针指向的内存空间,而指针本身依旧还在,正确的操作是delete一个指针后立马将指针赋值为nullptr
空指针
就是指向NULL的指针,但是不保证一定是空,因为NULL本质就是0,我依旧可以用*p来访问地址为0的区域啊,虽然这是会被编译器禁止的。
文章作者: Estom
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Estom的博客!
相关推荐

2021-03-13
2.2 双链表
双链表1 双链表的简介概念 双向链表是一种复杂类型的链表,它的节点包含指向序列中前一个节点和下一个节点的指针。 在双向链表中,节点由三部分组成:节点数据,指向下一个节点的指针(next指针),指向前一个节点的指针(prev指针)。 2 双链表的存储和实现数据存储 双向链表为每个节点消耗更多空间 可以更灵活地操作链表中的元素。 数据实现 使用结构体和指针实现。 123456struct node { struct node *prev; int data; struct node *next; } 使用STL中的list实现 12#include<list>list<int> li; 3 双链表的操作基本操作 创建 遍历、搜索 插入 删除 实现12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656...

2021-04-14
1.2 复合类型
复合类型1 引用 由基本类型组合而来。不能单独存在。 int &ref=a.表示对 a 的引用。引用本身并非对象,只是已经存在的对象的别名 引用必须在定义的时候被初始化。 引用是变量的别名,具有同一个变量地址(变量空间)。 允许多个连续的引用int &r=i,r2=i2.表示 r 是 i 的引用,但 r2 是 int 连续定义必须都加引用符号。int &r=i,&r2=i2; 编译过程解释:一般初始化的时候(变量定义),编译器会将一个值拷贝到新建的变量空间中,然后与变量绑定。引用变量在初始化的时候,不进行拷贝,而是将原来的变量空间与新的对象绑定在一起。 2 指针指针的定义 实现了间接访问。本身是一个对象。与引用不同,指针有自己的变量空间。 允许对指针进行复制和 copy。 int* dp,dp1.其中 dp 是 int 指针,dp1 是 int 类型。 不能定义指向引用的指针,因为引用不是对象,没有内存空间。 连续定义,必须都加*号 指针值的四种状态 指向一个对象; 指向紧邻对象所占空间的下...

2019-10-15
--RIP协议
RIP协议 参考文献 RIP基础知识 等到复习的时候整理这篇文档 RIP简介RIP是Routing Information Protocol(路由信息协议)的简称,它是一种较为简单的内部网关协议(Interior Gateway Protocol)。RIP是一种基于距离矢量(Distance-Vector)算法的协议,它使用跳数(Hop Count)作为度量来衡量到达目的网络的距离。RIP通过UDP报文进行路由信息的交换,使用的端口号为520。 RIP包括RIP-1和RIP-2两个版本,RIP-2对RIP-1进行了扩充,使其更具有优势。 RIP原理描述RIP基本原理:RIP是一种基于距离矢量(Distance-Vector)算法的协议,它使用跳数(Hop Count)作为度量值来衡量到达目的地址的距离。在RIP网络中,缺省情况下,设备到与它直接相连网络的跳数为0,通过一个设备可达的网络的跳数为1,其余依此类推。也就是说,度量值等于从本网络到达目的网络间的设备数量。为限制收敛时间,RIP规定度量值取0~15之间的整数,大于或等于16的跳数被定义为无穷大,即目的网络或主机不可达...

2020-09-26
figimage_demo
Figimage 演示这说明了在没有轴对象的情况下,直接将图像放置在图形中。 12345678910111213import numpy as npimport matplotlibimport matplotlib.pyplot as pltfig = plt.figure()Z = np.arange(10000).reshape((100, 100))Z[:, 50:] = 1im1 = fig.figimage(Z, xo=50, yo=0, origin='lower')im2 = fig.figimage(Z, xo=100, yo=100, alpha=.8, origin='lower')plt.show() 参考本例中显示了下列函数、方法、类和模块的使用: 123matplotlib.figure.Figurematplotlib.figure.Figure.figimagematplotlib.pyplot.figimage 下载这个示例 下载python源码: figimage_demo.py 下载Jupyter...

2021-03-19
4.3 数组与滑动窗口
数组与滑动窗口1 最长不含重复字符的子字符串——滑动窗口问题描述 请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。 问题分析问题分类算法设计 哈希表 dicdic 统计: 指针 jj 遍历字符 ss ,哈希表统计字符 s[j]s[j] 最后一次出现的索引 。 更新左指针 ii : 根据上轮左指针 ii 和 dic[s[j]]dic[s[j]] ,每轮更新左边界 ii ,保证区间 [i + 1, j][i+1,j] 内无重复字符且最大。$$i=max(dic[s[j]],i)$$ 更新结果 res : 取上轮 res 和本轮双指针区间 [i + 1,j][i+1,j] 的宽度(即 j - ij−i )中的最大值 $$res=max(res,j−i)$$ 算法分析 时间复杂度 O(N): 其中 N为字符串长度,动态规划需遍历计算 dpdp 列表。 空间复杂度 O(1) : 字符的 ASCII 码范围为 00 ~ 127,哈希表 dic最多使用 O(128) = O(1) 大小的额外空间。 算法分析 时间复杂度 O(N...

2021-09-07
A.2-chinese
A.2 删除函数有时让类去做拷贝是没有意义的。std::mutex就是一个例子——拷贝一个互斥量,意义何在?std::unique_lock<>是另一个例子——一个实例只能拥有一个锁;如果要复制,拷贝的那个实例也能获取相同的锁,这样std::unique_lock<>就没有存在的意义了。实例中转移所有权(A.1.2节)是有意义的,其并不是使用的拷贝。当然其他例子就不一一列举了。 通常为了避免进行拷贝操作,会将拷贝构造函数和拷贝赋值操作符声明为私有成员,并且不进行实现。如果对实例进行拷贝,将会引起编译错误;如果有其他成员函数或友元函数想要拷贝一个实例,那将会引起链接错误(因为缺少实现): 1234567891011class no_copies{public: no_copies(){}private: no_copies(no_copies const&); // 无实现 no_copies& operator=(no_copies const&); // 无实现};no_copie...
公告
欢迎参观Estom的小屋




