中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-01 03:35
中国DOS联盟论坛 » DOS开发编程 & 发展交流 (开发室) » TC下如何释放Buffer所占空间 查看 1,012 回复 6
楼 主 TC下如何释放Buffer所占空间 发表于 2003-11-13 00:00 ·  中国 陕西 西安 电信
初级用户
★★
忍者
积分 376
发帖 86
注册 2003-10-16 00:00
22年会员
UID 11361
性别 男
状态 离线
TC下如何释放Buffer所占空间,以便加载更多图片,请高手指点!
以C语言软件开发为主:http://sunny1979.icpcn.com
2 发表于 2003-11-14 00:00 ·  中国 湖北 武汉 鹏博士宽带
中级用户
★★
积分 286
发帖 59
注册 2003-04-08 00:00
23年会员
UID 1437
性别 男
状态 离线
不太懂你的意思,如果你是用malloc,alloc等函数分配的空间,用free函数来释放,这样buffer所占空间就没有了,也无法使用buffer了,得重新分配;如果你是要使用原buffer的空间,直接用就行了,新内容会把原来的内容覆盖掉。
3 发表于 2003-11-18 00:00 ·  中国 陕西 西安 电信
初级用户
★★
忍者
积分 376
发帖 86
注册 2003-10-16 00:00
22年会员
UID 11361
性别 男
状态 离线
二楼 的先生:我是用malloc,alloc等函数分配的空间,但无法用free释放所占空间;要使用原buffer的空间,显示另一幅图片,就会出现死机。原程序见我的主页:http://sunny1979.icpcn.com中我的资源,图片显示程序。麻烦您看一下是怎么回是!先谢了!
以C语言软件开发为主:http://sunny1979.icpcn.com
4 发表于 2003-11-18 00:00 ·  中国 湖北 武汉 鹏博士宽带
中级用户
★★
积分 286
发帖 59
注册 2003-04-08 00:00
23年会员
UID 1437
性别 男
状态 离线
你的主页中“我的资源”里没有“图片显示程序”,倒是“我的作品”栏里有个“TC加载16色BMP文件”
的程序,不知道是不是你说的那个。编译时没有错误,也出现了你所说的死机现象。看到你源代码里main函数末尾部分有这样一行:
if((buffer=malloc(ff->ff_fsize))==NULL)exit(0);
我把其中的malloc改为了farmalloc,问题似乎就解决了(试了好多次都没有死机)你可以改改试试,看行不行,我猜想大概是用malloc容易得到dos系统区的空间,造成dos系统崩溃,用farmalloc就强一些。
5 发表于 2003-11-20 00:00 ·  中国 陕西 西安 电信
初级用户
★★
忍者
积分 376
发帖 86
注册 2003-10-16 00:00
22年会员
UID 11361
性别 男
状态 离线
我把其中的malloc改为了farmalloc,结果死机了!不改还可以运行,可能设置不一样吧!只能加载这一幅图,再加载就肯定死机!你能再加载一幅图吗?
以C语言软件开发为主:http://sunny1979.icpcn.com
6 发表于 2003-11-20 00:00 ·  中国 湖北 武汉 鹏博士宽带
中级用户
★★
积分 286
发帖 59
注册 2003-04-08 00:00
23年会员
UID 1437
性别 男
状态 离线
把编译模式改为large或huge试试。我用的是huge


7 发表于 2003-11-20 00:00 ·  中国 陕西 西安 电信
初级用户
★★
忍者
积分 376
发帖 86
注册 2003-10-16 00:00
22年会员
UID 11361
性别 男
状态 离线
为什么只能加载一幅呢?
以C语言软件开发为主:http://sunny1979.icpcn.com
论坛跳转: