堆和棧的區別

1. 對於一個完整的程序,在內存中的分佈情況如下圖 :

     代碼區

     全局數據區

     堆區

     棧區

   一個程序一般分爲3段:text段,data段,bss段。

    text段:就是放程序代碼的,編譯時確定,只讀;

    data段: 存放在程序編譯階段(而非運行時)就能確定的數據,可讀可寫,就是通常所說的靜態存儲區,賦了初值的全局變量和靜態變量存放在這個區域,常量也存放在這區域

    bss段: 定義而沒有賦初值的全局變量和靜態變量,放在這個區域


堆和棧的區別

    一、預備知識

  1.程序的內存分配

   一個由C/C++編譯的程序佔用的內存分爲以下部分

1. 棧區(stack)---由編譯器自動分配釋放,存放函數的參數值,局部變量的值等。其操作方式類似於數據結構中的棧。


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