C语言学习鹏哥指针初阶2
野指针
- 成因:指针指向位置不可知的(随机的、不正确的、没有明确限制的)
#include<stdio.h>
int main(){
int *p ;//p是一个局部指针变量,局部变量不初始化的话,默认是随机值
*p=20;
printf("%d",p);
}
- 成因2:越界访问
int arr[10]={0};
int *p=arr;
for(int i = 0;i<=10;i++){
*p = i;
p++; //当i=10时,p指向的位置错误
}
当i=10时,p指向的位置错误
如何规避野指针
- 指针变量初始化
int *p=NULL; 或 int *p=&a ; - 小心指针越界
- 指针指向空间释放及时赋值NULL
文章介绍了C语言中野指针的概念,包括指针未初始化导致的随机地址引用和指针越界访问的问题。通过示例代码展示了这两种情况的发生,并提出了预防措施,即始终初始化指针变量为NULL或实际对象的地址,以及在释放内存后将指针设为NULL,以提高程序的安全性。
121

被折叠的 条评论
为什么被折叠?



