野指针是什么意思,野指针的成因

空指针与野指针。

1、什么是野指针?

如果定义了指针变量且未初始化,则系统可以随机为此指针变量分配地址。 也就是说,这个指针指向未知的区域。 指针变量的故事称为野指针。

2、如何解决野指针?

1 )在定义指针变量的同时初始化地址值。

例:

int a;

int *p=a; //p不指未知领域,而是指a空间的地址。

2)使用空指针。

什么是空指针?

实际上,空指针是内存空间上的地址,这个地址是0x0

#define NULL0 -NULL等价于0x0,等价于null指针-〉指向空间是安全的区域。

例:

int a;

int *p=NULL; -p表示安全区域。 p=a;

3、如果一个指针指向安全区域,这时候解引用这个指针,会怎样?

发生段错误: segmentation fault (核心中断)

4、如果出现段错误,怎么找?

段错误不是语法错误,因此在gcc编译时不提供任何内容,如果在运行时出现段错误,程序将打印Segmentation fault(core dumped ),然后程序立即退出。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注