标题:[求助]关于free函数
只看楼主
baidu
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:3811
专家分:0
注 册:2005-11-4
得分:0 
你是够愚昧的!这也说明你。。。。唉,也不说了,让其他人说吧。

要告诉他的快告诉他为什么不是" 0. "在前面

偶放弃所有文章版权,偶在BCCN论坛任何贴子,可转贴,可散发,可抄袭,可复制,可被冒名顶替,可被任何人引用到任何文章中且不写出引文出处,偶分文不取。
2006-08-04 14:56
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-08-04 14:56
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-08-04 14:58
baidu
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:3811
专家分:0
注 册:2005-11-4
得分:0 

我可确定一件事,你看不懂这个free函数


偶放弃所有文章版权,偶在BCCN论坛任何贴子,可转贴,可散发,可抄袭,可复制,可被冒名顶替,可被任何人引用到任何文章中且不写出引文出处,偶分文不取。
2006-08-04 14:59
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-08-04 15:09
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
得分:0 

俺又把精彩的错过了..在详细解读之前..我先说那个什么0.在后面吧

[QUOTE]char *ptr1,*ptr2;
ptr1=(char *)malloc(80*sizeof(char));
gets(ptr1); /*用户输入*/


ptr2=ptr1;
puts("0. ");
puts(ptr1);[/QUOTE]




[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-08-04 15:10
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
得分:0 
lao da jin tian bu shang ban ba?????????

日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-08-04 15:28
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
得分:0 

[QUOTE]#include<stdio.h>
#include<malloc.h>
int main()
{
char *ptr1,*ptr2;
ptr1=(char *)malloc(80*sizeof(char));
gets(ptr1);

ptr2=ptr1;
puts("0. ");
puts(ptr1);

ptr2++;
free(ptr2);
puts("1. ");
puts(ptr1);

ptr2--;
free(ptr2);
puts("2. ");
puts(ptr1);

}[/QUOTE]

baidu 的这段代码已经很明了了..

或者再稍微修改一下.

#include<stdio.h>
#include<malloc.h>
int main()
{
char *ptr1;
ptr1=(char *)malloc(80*sizeof(char));
gets(ptr1);


puts("0. ");
puts(ptr1);

ptr1++;
free(ptr1);
puts("1. ");
puts(ptr1-1);

ptr1--;
free(ptr1);
puts("2. ");
puts(ptr1);

}

这样牧羊应该看得明白了吧


[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-08-04 15:45
frenn
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2006-8-2
得分:0 

asdfd
0.
asdfd
Press any key to continue
你们在什么环境下运行的?我用vc++6.0运行时在第一个free处程序就出错了:
终止(A) 重试(R) 忽略(I)

也就是说free(void *p)里的参数只能是申请时返回的指针了。

2006-08-04 16:28
lj_860603
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:714
专家分:0
注 册:2006-1-25
得分:0 

偶GOOGLE了很久,就是没有一篇专门详细深入介绍malloc()和free()机制文章。偶自己准备总结一篇。

不过偶现在对这个问题已经有了进一层的理解,万岁!


我的原则很简单:不做不喜欢的事!
2006-08-04 16:29



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




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

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