关于 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((void*)c),就OK, c才是变量名, '*'的个数只是说明指针的级数! free() 简单来说就是释放内存。。。。
----------------解决方案--------------------------------------------------------
谢谢!了解。
----------------解决方案--------------------------------------------------------
应该把一维的逐个释放,再释放那个二维的
----------------解决方案--------------------------------------------------------
4楼正解。调用过几次malloc就得有几次free。他们两个是成对出现的。
----------------解决方案--------------------------------------------------------
布拉莫斯,误导哦……
----------------解决方案--------------------------------------------------------
"以下是引用 moonwalker在 2008-5-7 21:24 的发言:
应该把一维的逐个释放,再释放那个二维的 "
----------------解决方案--------------------------------------------------------
啊 ,原来要这样啊
那就是先 释放 *c
再释放 c咯?
----------------解决方案--------------------------------------------------------
先释放c[i],然后是c。。。。。。。。。
----------------解决方案--------------------------------------------------------
回复 6# 的帖子
I am sorry! 我的基本功也不扎实,,,! ----------------解决方案--------------------------------------------------------