2013-03-17 42 views

回答

5

因爲他們堆棧上宣佈,如果你在本地聲明他們 - 如果堆棧變得太大,你將有一個堆棧溢出和程序將會崩潰。

6

,因爲他們去到堆棧,並且只有在堆棧上的空間有限,

0

雖然有可能提前調整堆棧空間在一定程度上,人們還需要考慮的可能性通過函數從執行路徑調用相同的函數。例如:

void a() { int a[10000000]; b(); } 
void b() { d(); c(); } 
void c() { a(); } 

由於此分析不總是直截了當,它可能導致溢出。

2

堆棧小(約4kb的),但堆具有機器上更尺寸變型中,使用動態 指針爲int的malloc()分配陣列,

知道指針和好運的

0

棧和堆可以是任意大小(堆棧可以比堆大了100倍,如果實現配置它的方式),但一般堆棧非常小,並且將與大的分配溢出 - 尤其是在遞歸函數。