[問題] malloc 太大嗎?
各位大大好
小弟在;windows 使用Dev c++
寫C遇到一個問題
配置動態二微陣列都會出錯
感覺是配製太大 所以當掉
unsigned long **horizontal;
unsigned long i, j;
horizontal=(unsigned long **)malloc(5*sizeof(unsigned long*));
for(i=0; i<5; i++)
horizontal[i]=(unsigned long *)malloc(400*sizeof(unsigned long));
如果改成300就沒問題
是不是因為unsigned long 所以爆掉了?
可是算一算 400*5 bytes 不是約2mb嗎?
為什麼會當? 或是我誤解甚麼了?
反過來配置就不會有問題
horizontal=(unsigned long **)malloc(400*sizeof(unsigned long*));
for(i=0; i<5; i++)
horizontal[i]=(unsigned long *)malloc(5*sizeof(unsigned long));
為什麼@@??
有其他方法嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.117.164.168
※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1413433100.A.223.html
※ 編輯: DirKai (140.117.164.168), 10/16/2014 12:19:47
→
10/16 12:21, , 1F
10/16 12:21, 1F
→
10/16 12:22, , 2F
10/16 12:22, 2F
→
10/16 12:22, , 3F
10/16 12:22, 3F
不好意思大大 可以再跟我說清楚一點嗎
我不太懂 剛剛是我打錯了...
推
10/16 12:22, , 4F
10/16 12:22, 4F
我好像打錯了 上面應該是for(i=0;i<5;i++)
抱歉 我修正
不過我在原程式碼還是會當
開新的程式碼 只打這幾行更正後 的確不會當
※ 編輯: DirKai (140.117.164.168), 10/16/2014 12:29:49
※ 編輯: DirKai (140.117.164.168), 10/16/2014 12:30:46
→
10/16 14:59, , 5F
10/16 14:59, 5F
阿...........2kb?
→
10/16 15:15, , 6F
10/16 15:15, 6F
→
10/16 15:16, , 7F
10/16 15:16, 7F
→
10/16 15:18, , 8F
10/16 15:18, 8F
那個 跟各位報告....我不知道怎麼弄好的 可是這幾行都沒變
我會來找找之前哪弄錯了 再回來跟各位報告..不好意思各位
不過 我剛剛上網查 這個方式造成很多記憶體碎片
有其他寫法 但看不大董
之後要再麻煩各位了>"<
※ 編輯: DirKai (140.117.164.168), 10/16/2014 16:52:48
推
10/16 16:55, , 9F
10/16 16:55, 9F
→
10/16 17:58, , 10F
10/16 17:58, 10F
→
10/16 17:59, , 11F
10/16 17:59, 11F
→
10/16 18:01, , 12F
10/16 18:01, 12F
→
10/16 18:02, , 13F
10/16 18:02, 13F
我有 而且還把其他註解掉了
最後把這幾行貼去新的空白程式碼 也出錯...
現在好了=___=...
※ 編輯: DirKai (140.117.164.168), 10/16/2014 18:19:19
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章