中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-09-15 05:00
47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,268 会员排行
DOS开发编程 & 发展交流 (开发室) » TC下如何释放Buffer所占空间
可打印版本  1,066 / 6
第1楼 sunny1979 发表于 2003-11-13 00:00
初级用户 发帖 86 积分 376
TC下如何释放Buffer所占空间
TC下如何释放Buffer所占空间,以便加载更多图片,请高手指点!
第2楼 Loff 发表于 2003-11-14 00:00
中级用户 发帖 59 积分 286
不太懂你的意思,如果你是用malloc,alloc等函数分配的空间,用free函数来释放,这样buffer所占空间就没有了,也无法使用buffer了,得重新分配;如果你是要使用原buffer的空间,直接用就行了,新内容会把原来的内容覆盖掉。
第3楼 sunny1979 发表于 2003-11-18 00:00
初级用户 发帖 86 积分 376
二楼 的先生:我是用malloc,alloc等函数分配的空间,但无法用free释放所占空间;要使用原buffer的空间,显示另一幅图片,就会出现死机。原程序见我的主页:http://sunny1979.icpcn.com中我的资源,图片显示程序。麻烦您看一下是怎么回是!先谢了!
第4楼 Loff 发表于 2003-11-18 00:00
中级用户 发帖 59 积分 286
你的主页中“我的资源”里没有“图片显示程序”,倒是“我的作品”栏里有个“TC加载16色BMP文件”
的程序,不知道是不是你说的那个。编译时没有错误,也出现了你所说的死机现象。看到你源代码里main函数末尾部分有这样一行:
if((buffer=malloc(ff->ff_fsize))==NULL)exit(0);
我把其中的malloc改为了farmalloc,问题似乎就解决了(试了好多次都没有死机)你可以改改试试,看行不行,我猜想大概是用malloc容易得到dos系统区的空间,造成dos系统崩溃,用farmalloc就强一些。
第5楼 sunny1979 发表于 2003-11-20 00:00
初级用户 发帖 86 积分 376
我把其中的malloc改为了farmalloc,结果死机了!不改还可以运行,可能设置不一样吧!只能加载这一幅图,再加载就肯定死机!你能再加载一幅图吗?
第6楼 Loff 发表于 2003-11-20 00:00
中级用户 发帖 59 积分 286
把编译模式改为large或huge试试。我用的是huge


第7楼 sunny1979 发表于 2003-11-20 00:00
初级用户 发帖 86 积分 376
为什么只能加载一幅呢?
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023