标题:[求助]关于free函数
只看楼主
乌鸦丘比特
Rank: 1
等 级:新手上路
威 望:2
帖 子:625
专家分:0
注 册:2004-7-19
 问题点数:0 回复次数:55 
[求助]关于free函数
我个人觉得free不像个函数,更像个宏,否则怎么不告诉它free空间的大小它就知道,也太神奇了。
free函数究竟是个什么东西,free一下多少空间究竟由什么决定,WHO知道可否告诉我。
搜索更多相关主题的帖子: free 函数 
2006-08-03 09:07
baidu
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:3811
专家分:0
注 册:2005-11-4
得分:0 
free 多少空间由malloc决定,在malloc时相关信息其中包括长度都已建立,malloc并不仅仅分配你所指定的大小的内存,还建立一系相关的数据

偶放弃所有文章版权,偶在BCCN论坛任何贴子,可转贴,可散发,可抄袭,可复制,可被冒名顶替,可被任何人引用到任何文章中且不写出引文出处,偶分文不取。
2006-08-03 09:31
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
得分:0 

那为什么 free 也可以释放不用malloc分配的内存呢.

难道编译器在定义数组的时候也是利用malloc来分配内存吗?


[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-08-03 09:41
baidu
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:3811
专家分:0
注 册:2005-11-4
得分:0 
以下是引用SunShining在2006-8-3 9:41:23的发言:

那为什么 free 也可以释放不用malloc分配的内存呢.

难道编译器在定义数组的时候也是利用malloc来分配内存吗?

噢?举个例子


偶放弃所有文章版权,偶在BCCN论坛任何贴子,可转贴,可散发,可抄袭,可复制,可被冒名顶替,可被任何人引用到任何文章中且不写出引文出处,偶分文不取。
2006-08-03 09:46
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
得分:0 

TC下.

include<stdio.h>
include<malloc.h>
int main()
{
char a[]="12345";
free(a);
puts(a);
getch();
}


[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-08-03 09:52
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
得分:0 

只有在TC下可以


[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-08-03 09:56
lj_860603
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:714
专家分:0
注 册:2006-1-25
得分:0 
Sun,你这个程序不是吧??free()似乎什么也没有做。

free和malloc应该是配对存在的。

我的原则很简单:不做不喜欢的事!
2006-08-03 09:56
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
得分:0 

虽然我不太清楚它做了什么

不过在TC下肯定做事情了...


[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-08-03 09:58
baidu
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:3811
专家分:0
注 册:2005-11-4
得分:0 
以下是引用SunShining在2006-8-3 9:58:39的发言:

虽然我不太清楚它做了什么

不过在TC下肯定做事情了...

做了错事


偶放弃所有文章版权,偶在BCCN论坛任何贴子,可转贴,可散发,可抄袭,可复制,可被冒名顶替,可被任何人引用到任何文章中且不写出引文出处,偶分文不取。
2006-08-03 09:59
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
得分:0 
..好象是.TC下是以外终止了.
不过在别的编译器上就是若无其事的样子了

[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-08-03 10:01



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




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

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