#include<stdio.h>
int* method();
int main()
{
/*
野指针:指针指向的空间未分配
悬空指针: 指针指向的空间已分配,但是被释放了
*/
// 野指针: 指针指向的空间未分配
int a = 10;
int* p1 = &a;
printf("%p\n", p1);
printf("%d\n", *p1);
// p2 野指针 (指针移动10个步长 * 4(64位))
int* p2 = p1 + 10;
printf("%p\n", p2);
printf("%d\n", *p2);
// 悬空指针: 指针指向的空间已分配,但是被释放了
int* p3 = method();
// 方法执行之后 里面的变量就会被清除 可能会不一样
printf("%p\n", p3);
printf("%d\n", *p3);
return 0;
}
int* method()
{
int num = 10;
int* p = #
return p;
}
C语言中的野指针和悬空指针
最新推荐文章于 2024-09-09 19:09:26 发布