当前位置: 代码迷 >> C语言 >> 关于 malloc 和 free 的问题
  详细解决方案

关于 malloc 和 free 的问题

热度:614   发布时间:2008-05-07 15:04:02.0
关于 malloc 和 free 的问题
我定义了一个大的二维数组
    int  **c;   
        
    c = (int   **)malloc(MAX_NUM_OF_NODE*sizeof(int   *));   
        
    for(int i=0; i<(MAX_NUM_OF_NODE); i++)   
        {
            c[i]=(int   *)malloc(MAX_NUM_OF_NODE*sizeof(int));
        }   
那么我最后释放内存的时候,是free(*c)  还是  free(c)

free()函数具体是什么意思,我在网上查了下,都不太清楚
搜索更多相关的解决方案: free  malloc  

----------------解决方案--------------------------------------------------------
用free((void*)c),就OK, c才是变量名, '*'的个数只是说明指针的级数!  free() 简单来说就是释放内存。。。。
----------------解决方案--------------------------------------------------------
谢谢!了解。
----------------解决方案--------------------------------------------------------
应该把一维的逐个释放,再释放那个二维的
----------------解决方案--------------------------------------------------------
4楼正解。调用过几次malloc就得有几次free。他们两个是成对出现的。
----------------解决方案--------------------------------------------------------
布拉莫斯,误导哦……
----------------解决方案--------------------------------------------------------
"以下是引用 moonwalker在 2008-5-7 21:24 的发言:

应该把一维的逐个释放,再释放那个二维的 "
----------------解决方案--------------------------------------------------------
啊 ,原来要这样啊
那就是先 释放 *c
    再释放     c咯?
----------------解决方案--------------------------------------------------------
先释放c[i],然后是c。。。。。。。。。
----------------解决方案--------------------------------------------------------
回复 6# 的帖子
I am sorry! 我的基本功也不扎实,,,!
----------------解决方案--------------------------------------------------------