一、C 語言內存區域劃分
在 C 語言程序運行時,內存主要分為以下幾個區域:
1.1 棧區(Stack)
特點:由編譯器自動分配和釋放,主要存儲函數的局部變量、函數參數、返回地址等。棧區的內存分配和釋放是按照后進先出(LIFO)的原則進行的,速度快。示例:
#include <stdio.h>void func() {int a = 10; // 變量 a 存儲在棧區printf("a 的值: %d\n", a);
}int main() {func();return 0;
}
在這個例子中,`func` 函數中的局部變量 `a` 存儲在棧區,當 `func` 函數執行完畢后,`a` 所占用的內存會自動被釋放。
1.2 堆區(Heap)