C語言-記憶體分配

Baaaan發表於2019-05-13

記憶體五個區域

  • 棧區
    由編譯器自動編譯釋放,比如:

//此時將儲存在常量區的字串suica拷貝到棧區.
char string[] = "suica";
  • 堆區
    堆區需要程式設計師手動分配,手動釋放.
    在C語言中可使用malloc進行分配:

//給指標p分配一個大小的記憶體空間
int* p = (int *) malloc (1);
  • 靜態區
    只初始化一次;如果初始化沒給值,預設為0;只有程式退出才釋放.
    將變數定義前加static則儲存在靜態區

static int a = 5;
  • 常量區
    存放常量字串,程式結束後系統釋放.

int a = 10;
  • 程式碼區
    存放程式的二進位制程式碼

相關文章