C语言 子函数局部变量的释放问题!

2025-03-11 15:40:10
推荐回答(3个)
回答1:

p最开始赋值为NULL,可以把他拿到函数test中又被重新赋值为指向变量a,而指针作为函数参数的时候是直接改变内存中他指向那个位置的值,你说的a确实被释放了(这个可以在主函数中test(&p);下面调用一次a,会报错说a没定义,说明a已经被释放了),但是赋值给指针p的那段地址还在那,并且那个地址里面存放的值是45,所以在最后输出p指向的位置的值的时候就把45输出了。

回答2:

a释放了,但还存在内存中,主函数中p的指向没变

回答3:

指针这种按址传递的方式是不会在函数中释放的