【C语言笔记】野指针的成因、危害和如何避免

【C语言笔记】野指针的成因、危害和如何避免

在C语言中,野指针是一个令程序员非常头疼的问题,它所造成的结果是不可预知的。

野指针,是指那些指向位置不可知(如随机的、不正确的、没有明确指向的)或者指向被释放的内存或者没有访问权限的指针(非法访问)。

造成野指针的

主要原因包括指针被定义但

没有初始化或赋值,

指针越界访问或者是指针

指向的空间被释放了,但在程序后面又去对它进行解引用。

野指针的危害,一方面是指向别的变量的地址,可能因为非法访问造成程序奔溃和更改别的变量的值,导致产生无法预知的错误,另一方面,就是在解引用时,得到不可预知的结果。要命的是,这些错误不一定会被编译器编译出来,看似完美的程序,可能造成灾难性后果,而且程序员很难排查。

可能造成的问题:

段错误:指向不可访问(操作系统不允许访问的敏感地址,如内核空间)的地址,结果是触发段错误; 1 #include

2

3 int main() {

4 int *p;

5

6 printf("%p\n", p);

7

8 *p = 2000;

9

10 printf("%p\n", p);

11 return 0;

12 }

指针p被定义了,但没有对其进行初始化,对其锁指向的地址的变量进行更改时,导致程序奔溃,这就是段错误。

0xb77b3ff4

Segmentation fault (core dumped)

程序

相关数据

搴的意思,搴的解释,搴的拼音,搴的部首,搴的笔顺
365bet新英体育

搴的意思,搴的解释,搴的拼音,搴的部首,搴的笔顺

⌛ 07-02 👁️ 5286
荣耀手机屏幕锁屏壁纸怎么设置
office365无法登录账号

荣耀手机屏幕锁屏壁纸怎么设置

⌛ 07-04 👁️ 1243
超级兔子最新版下载-超级兔子官方版免费下载2025
日博365官网手机版

超级兔子最新版下载-超级兔子官方版免费下载2025

⌛ 07-02 👁️ 1641