Chinaunix

标题: free的一个问题 [打印本页]

作者: pengxihan    时间: 2010-09-17 21:01
标题: free的一个问题
<code>
struct my_struct *p = NULL;
p = malloc(sizeof(struct my_struct) * N);
free(p);
</code>

请问free(p)能释放掉N个my_struct的内存吗?如果改成:

<code>
struct my_struct *p = NULL;
struct my_struct *tmp = NULL;
p = malloc(sizeof(struct my_struct) * N);
tmp = p;
free(tmp);
</code>

free(tmp)是一个还是N个?
作者: l.darkfire    时间: 2010-09-17 21:26
全部会被释放
作者: pengxihan    时间: 2010-09-17 21:37
回复 2# l.darkfire


    第二种情况呢?
作者: l.darkfire    时间: 2010-09-17 21:50
一样,全部会被释放。
作者: adexbn    时间: 2010-09-19 10:46
全部释放。

但是有一个问题,如果你的struct里面有指针,他们指向的地址你自己处理。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2