TC内存问题?

jkmaple 2010-11-17 09:18:08
用TC编辑器写程序,中间用到malloc申请内存,只能申请到7000多个结点,就不能申请了,请问个位高手有没有解决方案了?(公司要求现在只能用TC写程序)
...全文
154 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
jkmaple 2010-11-17
  • 打赏
  • 举报
回复
谢谢各位,我再试试
dubiousway 2010-11-17
  • 打赏
  • 举报
回复
我当时用tc 在dos下做程序时候的做法。

对于大文件内容的读入,只读入一部分。并记录下最后的读入的文件指针位置。
处理(或显示、或编辑)完前面的内容,需要用到新的文件内容时,释放前面的内容(当然要写入一个临时文件),然后再从刚才纪录的文件指针处读入新的一部分内容。

这样不会有内存不够的问题。

你用一个字符占一个节点的做法,要看根据需要是否合适(因为我不知道你要做什么)

我一般一个段落(碰到新回车符号)算一个节点,节点除了内容,还有长度,以后计算方便。

[Quote=引用 12 楼 jkmaple 的回复:]
先谢谢!
但还是不够用,我要打开一个近二万行(372K)的文件,以后有可能还要大(要求要能够打开至少1M的文本文件),一个字符占一个节点(本人是初次写程序不知这种方法好不好?)
引用 9 楼 dubiousway 的回复:
转贴tc说明一部分,看看有用没有
再讲一下Turbo C中的内存模式。内存模式的出现不是由编译器决定的,而是由处理器的寻址方式决定的,在8086处理器中为了在16位寄存器的基础上寻址20位的地址,引入了段寄存器和分段寻址的方式。在编译器这一级,利用这种段式的寻址方式,可以实现多种不同的存储分配方法,因此就产生了所谓的不同的内存模式。
1. ti……
[/Quote]
赵4老师 2010-11-17
  • 打赏
  • 举报
回复
用文件读写模拟大内存
jkmaple 2010-11-17
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 dubiousway 的回复:]
转贴tc说明一部分,看看有用没有
再讲一下Turbo C中的内存模式。内存模式的出现不是由编译器决定的,而是由处理器的寻址方式决定的,在8086处理器中为了在16位寄存器的基础上寻址20位的地址,引入了段寄存器和分段寻址的方式。在编译器这一级,利用这种段式的寻址方式,可以实现多种不同的存储分配方法,因此就产生了所谓的不同的内存模式。
1. tiny模式: 程序和数据在一个64K字节的段内
2……
[/Quote]
先谢谢!
但还是不够用,我要打开一个近二万行(372K)的文件,以后有可能还要大(要求要能够打开至少1M的文本文件),一个字符占一个节点(本人是初次写程序不知这种方法好不好?)
jkmaple 2010-11-17
  • 打赏
  • 举报
回复
好的,我先试试,谢谢各位!
luciferisnotsatan 2010-11-17
  • 打赏
  • 举报
回复
记得tc是16位的,你们公司在给啥东西开发代码?
按ls说的试试看
dubiousway 2010-11-17
  • 打赏
  • 举报
回复
转贴tc说明一部分,看看有用没有
再讲一下Turbo C中的内存模式。内存模式的出现不是由编译器决定的,而是由处理器的寻址方式决定的,在8086处理器中为了在16位寄存器的基础上寻址20位的地址,引入了段寄存器和分段寻址的方式。在编译器这一级,利用这种段式的寻址方式,可以实现多种不同的存储分配方法,因此就产生了所谓的不同的内存模式。
1. tiny模式: 程序和数据在一个64K字节的段内
2. small模式: 独立的代码段(64KB)和独立的数据段(64KB)
3. medium模式: 单个数据段(64KB)和多个代码段(1MB)
4. compack模式:单个代码段(64KB)和多个数据段(1MB)
5. large模式: 多个代码段(1MB)和多个数据段(1MB),数据指针不能跨越段边界,否则将回绕
6. huge模式: 多个代码段(1MB)和多个数据段(1MB),数据指针可以跨越段边界,不会回绕


按理说,即使是tiny模式,7000*4 也应该没问题。不过你可以换换大内存模式看看
greyillusion 2010-11-17
  • 打赏
  • 举报
回复
不知道。。。
jkmaple 2010-11-17
  • 打赏
  • 举报
回复
是的,在TC中改了内存模式虽稍增大了点,但 还是不够用,这个和物理内存没有关系吧,我内存2G的?急死了?各位帮帮忙!谢谢!
别逗我乐 2010-11-17
  • 打赏
  • 举报
回复
可能系统,不能一次提供 》7000结点的连续空间吧

一次非要用这么多么,

要不换成静态的试试
jkmaple 2010-11-17
  • 打赏
  • 举报
回复
sizeof(4)
C4Fun 2010-11-17
  • 打赏
  • 举报
回复
malloc 和编译器没有关系吧,你申请了多大的空间?7000*sizeof(_tag_struct) = ??
hastings 2010-11-17
  • 打赏
  • 举报
回复
买根内存条~~
jkmaple 2010-11-17
  • 打赏
  • 举报
回复
TC不好用,但公司要求,没办法!
Trinx 2010-11-17
  • 打赏
  • 举报
回复
TC很好用吗?

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧