棧上分配空間時的限制

有以下程序:

編譯後,沒有錯誤,運行發現錯誤。原因是在棧上分配的空間大小超出了VC規定的棧大小的默認值。

VC默認棧大小是1M。

 

另有以下程序:

編譯運行沒有錯誤,因爲分配的空間實在靜態存儲區,而不是在棧上分配的。

 

還有下面程序,也不會出錯。

因爲空間的分配也在靜態存儲區。

 

另外,在程序中動態分配的空間一般也比在棧上可分配的空間大很多。所以一般情況下都不會導致超出默認情況下空間大小的情況。

 

爲了使在棧上分配的空間大小能符合實際的要求,我們可以調整VC的默認棧的空間大小。

方法:

依次打開:project->Setting->Link,在Category中選中Output,然後再Reserve中設定堆棧的最大值和commit就可以了。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章