社区
C语言
帖子详情
请教高手,在线等,急!!
haidoc
2004-06-08 06:23:19
大约定义了5个static double Ez[61][61]这样的数组,编译时提示全局变量过多,这是怎么回事?我计算了一下,光要存储这些变量就需要0.45M,而tcforwin的可用内存仅有430k,请问,这样大的计算量,c不可以胜任吗?
...全文
98
7
打赏
收藏
请教高手,在线等,急!!
大约定义了5个static double Ez[61][61]这样的数组,编译时提示全局变量过多,这是怎么回事?我计算了一下,光要存储这些变量就需要0.45M,而tcforwin的可用内存仅有430k,请问,这样大的计算量,c不可以胜任吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
dot99
2004-06-09
打赏
举报
回复
对于 错误: 数组的大小不可超过0xffffffff字节
应为
单纯从sub esp, 0xffffffff上来看的话~~~溢出咯~~~
dot99
2004-06-09
打赏
举报
回复
给你个错误信息~~~
一、 尝试分配0xffffffff个大小的整型数组(大小为4*0xffffffff字节)
int s[0xffffffff];
错误: 数组的大小不可超过0xffffffff字节
二、减少分配数组元素为0x3ffffff个,大小为4*0x3fffffff = 0xffffffff字节
int s[0x3fffffff];
fatal error C1126: 自动分配超过 2G
三、再减少分配空间为2G
int s[0x20000000];
fatal error C1126: 自动分配超过 2G (原因是,系统还要分配一些东西保存必须的信息)
四、减少一半
int s[0x10000000];
编译通过. 但运行错误.
分配空间超过了_PAGESIZE_ 调用另外一种分配方式, 按页分配空间. VC.NET下面一页大小是0x1000.
若需要空间少于一页~
则在eax里面计算新esp, 然后xchg eax, esp
如超过一页,则循环分配内存(只是先计算新esp, 并没有实际分配)
如果需求页过多~那么堆栈就爆了~先是测试, 幸好没有写填充数~要不整个系统可能当掉
测试的时候是 test dword ptr [ecx], eax; 读取一下, 如果不可读抛出stack overflow的异常(再一次庆幸没写填充数). 如果这些页通过测试后, 则mov esp, ecx; (这里用ecx计算新esp)
如果想知道到底能自动分配多大的空间
你可以修改chkstk.asm文件, 测试页前输出log~~~~~~这样就可以得到确切大小了~~
另外, 修正一下
sub esp, xxx; 是分配xxx个字节的变量 空间~~(堆栈里面分配)
comet007
2004-06-08
打赏
举报
回复
什么年代了,还用tc?tc是16位的,每段64K.默认的小模式当然不行.
改用别的编译器吧,强烈建议不要在用tc了.
heuristic
2004-06-08
打赏
举报
回复
赞同到用的时候再定义
也可以这样:
const double Ez[61][61]
dot99
2004-06-08
打赏
举报
回复
建议用懒惰方法~要的时候再定义
或者分散在不同的namespace里面
一个函数里不能有那么多的变量~
因为函数里面分配局部变量的时候是这个样子
mov ebp, esp
sub esp, xxx ;分配xxx个字(变量)的空间
haidoc
2004-06-08
打赏
举报
回复
但是,如果不用static,怎么给数组赋值呢?
ma100
2004-06-08
打赏
举报
回复
当然是编译器的问题
为什么要STATIC,其实它很不好,程序大了就容易忘了,而引起问题
20周年特别活动:从码农到财富自由,8大博客专家
在线
指导
与大牛老师互动+
请教
,请扫码入群
饥荒服务器账号问题,求救,游侠平台的 饥荒服务器问题
请教
高手
指教下
该楼层疑似违规已被系统折叠隐藏此楼查看此楼小白等级低上不了图片,大家看下 卡到结束后的语句吧 ,谢谢LUA ERROR stack traceback:../mods/d75-572470943/scripts/prefabs/summons/summonjarvi.lua:78 in (method)...
高手
都是这样嚒?
目的是希望
请教
各位
高手
一个关于webwork上传的问题,本以为会得到帮助。可是俺错了。没想到咱们搞程序的等级划分那么严重。
高手
只会解答高级问题,是不会理睬新人的问题或者他们认为很垃圾,很糟糕的的弱智问题!我...
IP电话频繁发生单向语音情况,
请教
?
现在的电话系统:CCM4.1+IPT_7902+C2811+4FXO,路由器的IOS version c2800nm-spservicesk9-mz.124-3f.bin,交换机是CE500-24T。 故障描述:平时的7902使用正常,但是偶尔会在通话过程中突然只听到对方的...
请教
高手
!
【南卡樱桃|读书笔记《学习
高手
》】
∝总览学校提高成绩 ▲涵盖记忆、笔记、预习、复习、做作业、错题、偏科、
请教
老师等学习场景,提高以应试升学为导向的各项学习能力。 ▲终身学习 9大课、33小课 ▷涵盖逻辑思考力、速读、精读、写作、减压、注意力...
C语言
69,371
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章