指针高级3-野指针和悬空指针

(1)野指针

野指针的意思是,指针指向的空间未分配。

例如int* p2 = p1 + 10;

这时指针会在内存中移动40个字节,在内存中,该位置的内存还未被进程使用,所以此时指针指向的就是未分配的内存空间,一般野指针可用于单机游戏的数值修改。

(2)悬空指针

悬空指针的意思是,指针指向的空间已分配,但是被释放了。

定义一个函数method(),返回值类型为int类型的指针变量,不传递任何参数,函数体的内容如下:

在程序主入口里,调用method(),并用p3指针记录返回值,打印输出的之后带上解引用输出真实数据。

最后会发现输出的数据为其他的值,这是因为在调用完函数之后,函数里面的变量会失效,如果不想失效要在指针变量前面加上static。

这里函数中变量在调用时系统已经分配了内存空间,在函数调用完之后就会被释放,此时就会有其他的程序占用该内存空间,就会导致输出的结果发生错误。

文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇