野指针出现的三种情况
生活随笔
收集整理的這篇文章主要介紹了
野指针出现的三种情况
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
昨天面試被問到“你了解野指針嗎”,我的回答是“野指針就是沒有初始化的指針,這樣的指針會隨機指向一塊內存,野指針會對系統造成破壞(造成內存泄漏)”。面試官又問到,“為什么會有野指針這個概念?”。我只是回答了”指針沒有初始化就會變成野指針“。
事實上野指針出現的情況有三種:
1、指針變量未初始化
2、指針釋放之后未置空
3、返回指向棧內存的指針
我們如何避免野指針呢?做法如下:
針對野指針出現的第一種情況的解決辦法:
1、定義一個指針后將其初始化為NULL。
針對野指針出現的第二種情況的解決辦法:
1、使用指針時先用malloc為指針分配內存(在堆空間中分配),檢查空間是否分配成功;
2、內存成功分配后對該內存空間初始化為0;
3、指針使用完后調用free()對指針指向的內存空間進行釋放;
4、對使用的指針重新賦為NULL。
針對野指針出現的第三種情況的解決辦法:
1、函數不要返回指向棧內存的指針。
總結
以上是生活随笔為你收集整理的野指针出现的三种情况的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 虚拟机ping不通开发板如何解决
- 下一篇: HMD(头盔显示器)是一种:A.听觉设备