开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
DEV C++
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
问题(Question):
小弟不才 最近打了一支程式 可以编译 可是执行档却不能跑
打开执行档 会跑出不是正确Win32应用程式
因模拟的需要
我在程式码中 全域 宣告了几个很大的阵列 如 int [9xxx][18xxx]
不知道是否是这样的影响以及是否有解决的办法
谢谢。
作者:
bjiyxo (若自礌)
2014-10-04 00:12:00就我所知,1个int是4B,如果像你宣告这么大的int计算出来就0.648GB,如果你又不小心很多个,就算你的RAM有这么多作业系统也不敢让你跑这么大的
想问一下 这样是否容易造成变量存取到不对的值?!谢谢
改用 new/delete 或 malloc/delete 吧实体内存不够用 OS 会置换到 HD 顶多跑慢一点就是了打错, 是 malloc/free
作者:
bjiyxo (若自礌)
2014-10-04 02:51:00我记得OS会管理每个程式的使用上限?(出自交大开放式课程
炸掉可理解 但是“这不是正确的win32应用程式”这个这个prompt理解不能 这不是应该是执行档格式错误才有?
作者:
johnpage (johnpage)
2014-10-04 05:17:00没程式码,空谈
没头没脑的,没执行环境也没程式码你这个在32位元程式跑不动,user space超过2G若是64位元程式下出错,那你得改用heap,因为存取了要验证很简单,用debugger确认是不是写到了code secti
把int[9xxx][8xxx]改成int[1][1]看能不能执行就知道是不是因为宣告太大造成不能执行但是‘不是正确Win32应用程式’我猜跟这个没关系
用VC2010试过,好像五六个10000*10000可编译过,但执行时出现同样错误可能是 data segment 的大小限制,初始化失败
作者:
QQ29 (我爱阿蓉)
2014-10-04 18:32:00你确定专案开的是win32 desktop 的吗看下pe header吧