看板 C_and_CPP 關於我們 聯絡資訊
最近用BCB寫程式碰到一個問題 因為程式是用來做影像處理的,所以要開許多的array 目前碰到的問題是好像已經用到極限了 再新增一個 dynamic array也沒有辦法 請問BCB是有規定程式可使用記憶體的上限嗎? 如果有的話要怎麼做更改呢? 謝謝~! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.126.97.192
VictorTom:BCB6的話, Project->Option->Linker->PE File Option 06/02 00:47
VictorTom:把Max stack size與Max heap size調大試試, 只是印象中 06/02 00:47
VictorTom:好像我調到 0x01000000 以上也就不給我設更大了@_@" 06/02 00:48
VictorTom:話說, 寫怎樣的影像處理code, 用了多少memory用完的呀?? 06/02 01:04
peter0318:好奇是怎樣的影像處理+1~ 06/02 01:20
makiyolove:好奇 +1 06/02 04:05
Trumen:用背景圖片與前景圖片render出3D影像的 也不知用了多少@@ 06/02 12:15
它出現的訊息是這樣的: Project TRP_Ver5.1.exe raised exeption class EAccess Violation with message 'Access violation at address 004446A6. Read of address 0000000A'. Process stopped. Use Step or Run to continue. 之前的版本是沒問題,不過如果我要再新增一dynamic array就會有上述錯誤訊息出現 比方說 char *a; a = new char[720*480]; 這樣不行 如果變成是a = new char[720*480-6000]; 就可以了 (-10000也是OK) 而a = new char[720*480-5000]; 也不行 所以我猜想應該是記憶體大小不夠的關係 但剛剛依照VictorTom大的說法將size都調到MAX了 (原本的10倍) 結果error message還是會出現@@ 這種情況要怎麼解決呢? 謝謝~! ※ 編輯: Trumen 來自: 122.126.97.192 (06/02 12:27)
Bencrie:你的BCB有更新嗎 ? 06/02 12:53
Bencrie:720x480才300多KB怎麼可能記憶體不夠 囧 06/02 12:56
VictorTom:其實是16倍XD BCB6小弟我以前用就一直不曉得怎樣能夠像 06/02 12:57
VictorTom:VC一樣動態要個總計上G的ram來用....Orz 06/02 12:57
VictorTom:他應該是本來的code已經用了不少記憶體, 之後要再要新的 06/02 12:58
VictorTom:才撞到error; 只是, 才多要個3xxKB就要不到也有點誇張@@ 06/02 12:58
VictorTom:另外, 要不要試試直接利用TBitmap開個8bpp的pixelformat 06/02 13:00
VictorTom:來試試?? 雖然存取記憶體會麻煩一點就是了Orz 06/02 13:01
Trumen:目前是用了別的怪方法過了 不過還是感到非常奇怪就是了.. 06/06 19:19