数据结构三

讨论:

两个函数 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;
   
}

posted @ 2012-04-10 19:54  喜欢阿亮的小水  阅读(155)  评论(0编辑  收藏  举报