空指针崩溃

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/IWantPlayYasuo/article/details/102695882
#include <stdio.h>
void Fun(int *p)
{
	p = NULL;
}

int main()
{
	int a = 10;
	int *p = &a;
	//p = NULL;//崩溃
	Fun(p);
	printf("%d\n",*p);//思考,1.为什么不崩溃,2.想要崩溃怎么办?

	return 0;
}

父函数调用子函数,子函数如果想要修改父函数的值,必须传指针(地址),子函数内必须要解引用。
函数调用时,传递形式参数,无法改变实际参数的值。如要改变实参的值,必须满足传指针解引用,改变指针所指向的内存所保存的值。
这里如果想让其奔溃需传参&p;
#include <stdio.h>
void Fun(int **p)
{
	*p = NULL;
}

int main()
{
	int a = 10;
	int *p = &a;
	Fun(&p);
	printf("%d\n",*p);
	return 0;
}

猜你喜欢

转载自blog.csdn.net/IWantPlayYasuo/article/details/102695882