| |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| -> 数据结构与算法 -> “迷途“的野指针都快找不着北了 -> 正文阅读 |
|
|
[数据结构与算法]“迷途“的野指针都快找不着北了 |
highlight: vs2015
悬垂指针/迷途指针定义
野指针定义
编译器一般会提示你出错了! 常见错误:1。指针定义时未被初始化:
2。指针释放后没有置空:
freefree() 只能释放动态分配的内存空间,并不能释放任意的内存。下面的写法是错误的:
注意:free() 不会改变 np 变量(一个指向结构体的指针)本身的值,调用 free() 后它仍然会指向相同的内存空间?
但是此时该内存已无效,不能被使用。 规避方法建议在 free操作后 将 np 的值设置为 NULL,例如:
3。在方法中定义变量,返回该变量的地址
栈
? 堆? 可能看到这里有的同学会有疑问了?诶,那free跟这个方法栈的回收有什么区别呢?为什么free过后是直接不能访问呢,而方法栈的回收却只是把区域回收了,但是数据还没有清理掉 其实我们free,通常都是搭配malloc来使用的,何谓malloc,malloc是我们程序员手动在堆中开辟一个空间,可以自己进行管理,不会像栈一样,出了函数就自动被回收了 来看我们用malloc能不能解决上边那个问题
堆栈需要注意的问题内存空间不足,内存泄漏malloc一时爽,一直malloc一直爽,随着我们开发不断的malloc,可能会带来什么问题呢?
堆栈溢出/缓冲区溢出使用过多的存储器时导致调用堆栈产生的溢出,也是缓冲区溢出中的一种 最常见的情况就是无限递归了
写在最后
|
|
|
|
|
| 上一篇文章 下一篇文章 查看所有文章 |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| 360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年12日历 | -2025/12/25 1:20:53- |
|
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |