关于变量作用域的问题
程序如下:#include<stdio.h>
#include<malloc.h>
void f(int * p)
{
int * q=(int *)malloc(sizeof(int));
* q=5;
p=q;
//printf("%d\n",* p);
return;
}
int main(void)
{
int * p;
f(p);
printf("%d\n",* p);
return 0;
}
q指向动态分配的内存单元,先给*q赋值,再把p指向q所指单元,调用函数之后在主函数中无法输出*p的值,求解原因。