main 函數內外定義變量,內存上的區別

當變量的定義(好比int a[100])出如今在函數之內時(如main()),這個狀況下變量a是從棧空間來申請內存進行儲存,而棧空間是在進程建立時初始化的,大小由系統固定的。因此定義佔用較大內存的變量(如大數組)時,編譯能夠經過可是運行不了。 以下圖所示:(編譯不會報錯,可是運行) web 而當咱們把變量的定義放在函數體之外時,所申請的內存來自於數據段,內存大小按需分配,能夠自由增加,因此能夠特別
相關文章
相關標籤/搜索