[問題] 大型矩陣動態記憶體配置

看板C_and_CPP (C/C++)作者 (舊的)時間12年前 (2014/03/10 23:21), 編輯推噓0(006)
留言6則, 3人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) C++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) IMSL 問題(Question): 由於原本練習的矩陣是500x500 改了屬性頁>連結器>改變堆疊配置大小 可以跑500x500 但最近要提高矩陣大小跑8400x8400 都會出現記憶體存取空間不足 爬文後要改用malloc void bigArrayInFunction() { int ary1[8400]; } void dynamicArrayInFunction() { int * ary; ary = (int*) malloc(sizeof(int)*8400); system("Pause"); free(ary); } int main(int argc, char *argv[]) { bigArrayInFunction(); dynamicArrayInFunction(); system("PAUSE"); return 0; } 但我這樣跑出來還是顯是記憶體不足..矩陣中的每一個數字都有小數點 這樣還能用new int 嗎 感謝大大們回答 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.70.128.61

03/11 17:00, , 1F
你這樣要配2百多MB,也太多了
03/11 17:00, 1F

03/11 18:29, , 2F
我剛剛試了另外一個寫法 但是int不吃浮點數 導致
03/11 18:29, 2F

03/11 18:30, , 3F
跑出來都是0...
03/11 18:30, 3F

03/11 18:41, , 4F
new int不行你有沒有試過new float new double?
03/11 18:41, 4F

03/11 19:18, , 5F
結果我改成calloc就可以了.. 不知道malloc為何不行
03/11 19:18, 5F

03/11 19:18, , 6F
恩 我是把指標前都改成double + calloc
03/11 19:18, 6F
文章代碼(AID): #1J7TXpIH (C_and_CPP)
文章代碼(AID): #1J7TXpIH (C_and_CPP)