看板 b96902HW 關於我們 聯絡資訊
※ 引述《vagrants (...)》之銘言: : Large arrays like A[1001][1000] might need to be declared before main() for : your compiler. : 剛剛測試了一下(用Dev-C++) : 寫這樣 : int main(void){ : int a[1001][1000];return 0; : } : 可以編譯,但一執行就當 : 然後換個方式 : int a[1001][1000]; : int main(void){ : return 0; : } : 這樣執行就不會當了 : 可不可以解釋一下為什麼呢?? 放在 function 裡面的變數會從 stack 中要記憶體, 而 stack 還滿小的. 放在 global space 的變數會從另一個叫 heap 的地方要記憶體, 那一塊比較大. -- n;main(i){return n?i<2?i:main(i-1)+main(i-2): scanf("%d",&n)&&printf("%d\n",n>0?main(n):0);} -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.30.54
vagrants:感謝 orz 雖然我看不太懂XD 10/29 00:16
mifan:global var 被放在 data section 裡面的東西也是丟 heap? @@ 10/29 21:10