数据结构三
讨论:
两个函数 g(),f()
在函数 g()中调用函数 f()
那么 在f()中系统为f()分配的那些内存,在 g()中结束f() 后,g()是否可以使用这块内存
我们知道,当f() 结束后,f()就没有了
但是在调用f()的过程中 内存确实是为f()分配了一块内存
是否可以在g()的下面代码继续调用这块内存的东西
# include <stdio.h>
int f();
int main(void)
{
int i = 10;
i = f();
printf("%d",i);
return 0;
}
int f()
{
int j = 20;
return j;
}
把f()调用完后,j就没有了
这个是只属于静态变量 ,但是动态内存分配是可以的
你看:
下面程序中,能通过调用 fun函数,使得 main函数中的指针p
指向 fun中为它分配的单元
int main()
{
int *p;
fun(p);
return 0;
}
void fun(int *p)
{
int s = 5;
p = &s;
}