标题:关于 malloc 和 free 的问题
只看楼主
schoolbug
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2008-5-1
 问题点数:0 回复次数:11 
关于 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 
2008-05-07 15:04
布拉莫斯
Rank: 1
来 自:中国太平洋舰队
等 级:新手上路
帖 子:169
专家分:0
注 册:2007-3-31
得分:0 
用free((void*)c),就OK, c才是变量名, '*'的个数只是说明指针的级数!  free() 简单来说就是释放内存。。。。

真理往往掌握在少数人手中,可现实却是少数服从多数!
2008-05-07 19:30
schoolbug
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2008-5-1
得分:0 
谢谢!了解。
2008-05-07 20:37
moonwalker
Rank: 1
等 级:新手上路
威 望:1
帖 子:909
专家分:2
注 册:2007-3-2
得分:0 
应该把一维的逐个释放,再释放那个二维的

“视频教程网”免费提供教学资源
C不限制你的自由!
条件是自己承担滥用自由的恶果!
2008-05-07 21:24
mqh21364
Rank: 1
等 级:新手上路
帖 子:642
专家分:0
注 册:2008-2-28
得分:0 
4楼正解。调用过几次malloc就得有几次free。他们两个是成对出现的。

前不见古人,后不见来者。念天地之悠悠,独怆然而涕下。
2008-05-07 21:34
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
得分:0 
布拉莫斯,误导哦……

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-05-07 21:44
zhaoyg
Rank: 1
等 级:新手上路
帖 子:328
专家分:0
注 册:2006-8-28
得分:0 
"以下是引用 moonwalker在 2008-5-7 21:24 的发言:

应该把一维的逐个释放,再释放那个二维的 "

麻雀飞上枝头变凤凰,而菜鸟的我飞上枝头却感冒了,为什么我的脑袋如此的不管用呢。
2008-05-07 23:07
schoolbug
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2008-5-1
得分:0 
啊 ,原来要这样啊
那就是先 释放 *c
    再释放     c咯?
2008-05-08 13:50
mqh21364
Rank: 1
等 级:新手上路
帖 子:642
专家分:0
注 册:2008-2-28
得分:0 
先释放c[i],然后是c。。。。。。。。。

前不见古人,后不见来者。念天地之悠悠,独怆然而涕下。
2008-05-08 13:53
布拉莫斯
Rank: 1
来 自:中国太平洋舰队
等 级:新手上路
帖 子:169
专家分:0
注 册:2007-3-31
得分:0 
回复 6# 的帖子
I am sorry! 我的基本功也不扎实,,,!

真理往往掌握在少数人手中,可现实却是少数服从多数!
2008-05-08 18:41



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-212958-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.503286 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved