[問題] 不是正確Win32應用程式

看板C_and_CPP作者 (亦)時間9年前 (2014/10/03 22:35), 編輯推噓7(7017)
留言24則, 9人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) DEV C++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 小弟不才 最近打了一支程式 可以編譯 可是執行檔卻不能跑 打開執行檔 會跑出不是正確Win32應用程式 因模擬的需要 我在程式碼中 全域 宣告了幾個很大的陣列 如 int [9xxx][18xxx] 不知道是否是這樣的影響以及是否有解決的辦法 謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.230.55.30 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1412346901.A.A8B.html

10/04 00:12, , 1F
就我所知,1個int是4B,如果像你宣告這麼大的int計算出來
10/04 00:12, 1F

10/04 00:13, , 2F
就0.648GB,如果你又不小心很多個,就算你的RAM有這麼多
10/04 00:13, 2F

10/04 00:14, , 3F
作業系統也不敢讓你跑這麼大的
10/04 00:14, 3F

10/04 01:29, , 4F
想問一下 這樣是否容易造成變數存取到不對的值?!謝謝
10/04 01:29, 4F

10/04 02:18, , 5F
連跑都不能跑你還在乎存取對不對XD?
10/04 02:18, 5F

10/04 02:18, , 6F
改用 new/delete 或 malloc/delete 吧
10/04 02:18, 6F

10/04 02:19, , 7F
實體記憶體不夠用 OS 會置換到 HD 頂多跑慢一點就是了
10/04 02:19, 7F

10/04 02:19, , 8F
打錯, 是 malloc/free
10/04 02:19, 8F

10/04 02:51, , 9F
我記得OS會管理每個程式的使用上限?(出自交大開放式課程
10/04 02:51, 9F

10/04 04:37, , 10F
炸掉可理解 但是「這不是正確的win32應用程式」這個
10/04 04:37, 10F

10/04 04:37, , 11F
這個prompt理解不能 這不是應該是執行檔格式錯誤才有?
10/04 04:37, 11F

10/04 05:17, , 12F
沒程式碼,空談
10/04 05:17, 12F

10/04 08:23, , 13F
沒頭沒腦的,沒執行環境也沒程式碼
10/04 08:23, 13F

10/04 08:27, , 14F
你這個在32位元程式跑不動,user space超過2G
10/04 08:27, 14F

10/04 08:30, , 15F
若是64位元程式下出錯,那你得改用heap,因為存取了
10/04 08:30, 15F

10/04 08:32, , 16F
要驗證很簡單,用debugger確認是不是寫到了code secti
10/04 08:32, 16F

10/04 10:01, , 17F
把int[9xxx][8xxx]改成int[1][1]看能不能執行就知道
10/04 10:01, 17F

10/04 10:01, , 18F
是不是因為宣告太大造成不能執行
10/04 10:01, 18F

10/04 10:02, , 19F
但是『不是正確Win32應用程式』我猜跟這個沒關係
10/04 10:02, 19F

10/04 11:07, , 20F
用VC2010試過,好像五六個10000*10000可編譯過,但執行
10/04 11:07, 20F

10/04 11:08, , 21F
時出現同樣錯誤
10/04 11:08, 21F

10/04 11:10, , 22F
可能是 data segment 的大小限制,初始化失敗
10/04 11:10, 22F

10/04 18:32, , 23F
你確定專案開的是win32 desktop 的嗎
10/04 18:32, 23F

10/04 18:33, , 24F
看下pe header吧
10/04 18:33, 24F
文章代碼(AID): #1KBhGLgB (C_and_CPP)