热门标签 | HotTags
当前位置:  开发笔记 > 开发工具 > 正文

c程序总出现"outofmemory..."

我在windows2000下用tc2.0编写的工控程序,到工控机dos6.22下运行总出现“outofmemory”后来我发现把windows2000里的tc2.0目录包括程序全
我在windows2000下用tc2.0编写的工控程序,到工控机dos6.22下运行总出现“out of memory...” 
   后来我发现把windows2000里的tc2.0目录包括程序全拷到工控机上就好了,不过在工控机上一修改程序,再运行又会出现“out of memory...” 
 (程序大约3000行,内存16M,dos下的himem也装载了) 
  请各位指教!

12 个解决方案

#1


这是古老的64k内存限制,tc2.0本身的问题,好象没有解决办法。

#2


试一试用djgpp编译

#3


3000多行的程序应该是没有问题才对啊!!

#4


程序有没有问题,会不会是memory leak>?

#5


换一个版本新一点的编译器!

#6


会不会是你编译是没有注意用大内存方式编译啊,或是你的tc装的不够完整,

#7


同志们那,我本人觉得可能是"内存泄漏"但如何泄漏的不得而知?
  但是为什么在win2000的tc2.0下编译运行都好好的???
  将win2000德tc2.0目录和源文件拷的工控机的dos6.22下编译运行也好好的!但是一动源文件,再编译就会出现"out of momery.." 愁人那!

#8


会不会是你的tc库的路径没设置好啊

#9


我想这不是你的TC问题就是你的程序的问题,有可能是你的这个程序泄露内存了,但这种可能性很小,必进他不是那种3DMAX程序,应该不会占那么大的内存的

#10


如果一动源文件就出这个问题,我估计是你从2k那边拷贝过来的东西包括了*.obj文件,这样在这边可能只做了连接而没有编译。
如果是这个问题的话有以下解决方法:
一、修改dos的内存设置,不仅仅要加载himem,还要加载emm386.exe,因为tc2.0只可以使用ems,还只能使用64k,不会使用xms
二、使用bc3.1编译,bc3.1兼容tc2.0,性能好多了,内存管理也好多了
三、使用tc2.0的命令行工具tcc来编译,不过这个方法要设置环境变量或者加命令行参数,可能不是这么方便
四、终极方法:把你的文件拆成若干个小文件,这样tc编译起来就方便多了,而且在工程上管理也好很多

#11


多谢各位支着,尤其感谢ckc(火)!正如火同志所料我从2K那边拷贝过来的东西包括了*.obj文件,这样在这边可能只做了连接而没有编译。高,实在是高!!!
   我只用了第一个方法“不仅仅要加载himem,还要加载emm386.exe“问题就解决了!不胜感激
   以后我看得用bc3.1,tc2.0连鼠标都不支持,别说其他方面了。
   使用tc2.0的命令行工具tcc来编译,我以前没用过,看样子有时间的好好钻研一下子
   把文件拆成若干个小文件,这个方法也极好。可我习惯了一个文件,在集成环境下随该随调,觉着挺方便!
    
   

#12


对了
同样的程序在98下一般不会出现这个问题
我有过这样的经历

推荐阅读
author-avatar
醇情咖啡_799
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有