1、以下这种情况p也是个野指针
int * ceFun() { int x = 5; return &x; } int main() { int * p = ceFun(); *p = 70; printf("%p\n", p); return 0; }
因为p指向了一个局部变量,指向了一个已经释放内存的变量
2、还有哪些现象,开始定义的时候没有初始化,指向一块不存在的内存等
所以如何规避野指针问题:
(1)指针在定义的时候,一定要进行初始化
(2)在不使用指针之后,一定要及时置为null
(3)指针尽量不要指向一个局部变量的地址
(4)指针不能越界,这个在使用数组时,特别要注意
(5)在使用指针之前最好做下检查,判断是否为null
标签:return,指向,int,C语言,问题,null,指针 From: https://www.cnblogs.com/JJ-Wu/p/17979906