标题: TC下如何释放Buffer所占空间
[打印本页]
作者: sunny1979
时间: 2003-11-13 00:00
标题: TC下如何释放Buffer所占空间
TC下如何释放Buffer所占空间,以便加载更多图片,请高手指点!
作者: Loff
时间: 2003-11-14 00:00
不太懂你的意思,如果你是用malloc,alloc等函数分配的空间,用free函数来释放,这样buffer所占空间就没有了,也无法使用buffer了,得重新分配;如果你是要使用原buffer的空间,直接用就行了,新内容会把原来的内容覆盖掉。
作者: sunny1979
时间: 2003-11-18 00:00
二楼 的先生:我是用malloc,alloc等函数分配的空间,但无法用free释放所占空间;要使用原buffer的空间,显示另一幅图片,就会出现死机。原程序见我的主页:http://sunny1979.icpcn.com中我的资源,图片显示程序。麻烦您看一下是怎么回是!先谢了!
作者: Loff
时间: 2003-11-18 00:00
你的主页中“我的资源”里没有“图片显示程序”,倒是“我的作品”栏里有个“TC加载16色BMP文件”
的程序,不知道是不是你说的那个。编译时没有错误,也出现了你所说的死机现象。看到你源代码里main函数末尾部分有这样一行:
if((buffer=malloc(ff->ff_fsize))==NULL)exit(0);
我把其中的malloc改为了farmalloc,问题似乎就解决了(试了好多次都没有死机)你可以改改试试,看行不行,我猜想大概是用malloc容易得到dos系统区的空间,造成dos系统崩溃,用farmalloc就强一些。
作者: sunny1979
时间: 2003-11-20 00:00
我把其中的malloc改为了farmalloc,结果死机了!不改还可以运行,可能设置不一样吧!只能加载这一幅图,再加载就肯定死机!你能再加载一幅图吗?
作者: Loff
时间: 2003-11-20 00:00
把编译模式改为large或huge试试。我用的是huge
作者: sunny1979
时间: 2003-11-20 00:00
为什么只能加载一幅呢?