中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: TC下如何释放Buffer所占空间 上一主题 | 下一主题
sunny1979
初级用户

忍者


积分 376
发帖 86
注册 2003-10-16
状态 离线
『楼 主』:  TC下如何释放Buffer所占空间

TC下如何释放Buffer所占空间,以便加载更多图片,请高手指点!



以C语言软件开发为主:http://sunny1979.icpcn.com
2003-11-13 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Loff
中级用户




积分 286
发帖 59
注册 2003-4-8
状态 离线
『第 2 楼』:  

不太懂你的意思,如果你是用malloc,alloc等函数分配的空间,用free函数来释放,这样buffer所占空间就没有了,也无法使用buffer了,得重新分配;如果你是要使用原buffer的空间,直接用就行了,新内容会把原来的内容覆盖掉。

2003-11-14 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
sunny1979
初级用户

忍者


积分 376
发帖 86
注册 2003-10-16
状态 离线
『第 3 楼』:  

二楼 的先生:我是用malloc,alloc等函数分配的空间,但无法用free释放所占空间;要使用原buffer的空间,显示另一幅图片,就会出现死机。原程序见我的主页:http://sunny1979.icpcn.com中我的资源,图片显示程序。麻烦您看一下是怎么回是!先谢了!



以C语言软件开发为主:http://sunny1979.icpcn.com
2003-11-18 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Loff
中级用户




积分 286
发帖 59
注册 2003-4-8
状态 离线
『第 4 楼』:  

你的主页中“我的资源”里没有“图片显示程序”,倒是“我的作品”栏里有个“TC加载16色BMP文件”
的程序,不知道是不是你说的那个。编译时没有错误,也出现了你所说的死机现象。看到你源代码里main函数末尾部分有这样一行:
if((buffer=malloc(ff->ff_fsize))==NULL)exit(0);
我把其中的malloc改为了farmalloc,问题似乎就解决了(试了好多次都没有死机)你可以改改试试,看行不行,我猜想大概是用malloc容易得到dos系统区的空间,造成dos系统崩溃,用farmalloc就强一些。

2003-11-18 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
sunny1979
初级用户

忍者


积分 376
发帖 86
注册 2003-10-16
状态 离线
『第 5 楼』:  

我把其中的malloc改为了farmalloc,结果死机了!不改还可以运行,可能设置不一样吧!只能加载这一幅图,再加载就肯定死机!你能再加载一幅图吗?



以C语言软件开发为主:http://sunny1979.icpcn.com
2003-11-20 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Loff
中级用户




积分 286
发帖 59
注册 2003-4-8
状态 离线
『第 6 楼』:  

把编译模式改为large或huge试试。我用的是huge


[此贴子已经被作者于2003-11-20 12:37:34编辑过]




2003-11-20 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
sunny1979
初级用户

忍者


积分 376
发帖 86
注册 2003-10-16
状态 离线
『第 7 楼』:  

为什么只能加载一幅呢?



以C语言软件开发为主:http://sunny1979.icpcn.com
2003-11-20 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: