乙個由c/c++編譯的程式占用的記憶體分為以下幾個部分
1、棧區(stack)— 由編譯器自動分配釋放 ,存放函式的引數值,區域性變數的值等。其
操作方式類似於
資料結構
中的棧。
2、堆區(heap) — 一般由程式設計師分配釋放, 若程式設計師不釋放,程式結束時可能由os回
收 。注意它與資料結構中的堆是兩回事,分配方式倒是類似於鍊錶,呵呵。
3、全域性區(靜態區)(static)—,全域性變數和靜態變數的儲存是放在一塊的,初始化的
全域性變數和靜態變數在一塊區域, 未初始化的全域性變數和未初始化的靜態變數在相鄰的另
一塊區域。 - 程式結束後由系統釋放。
4、文字常量區 —常量字串就是放在這裡的。 程式結束後由系統釋放
5、程式**區—存放函式體的二進位制**。
這是乙個前輩寫的,非常詳細
int a = 0; 全域性初始化區
char *p1; 全域性未初始化區
main()
;
有關C 陣列溢位問題,C 陣列可以開多大
乙個由c c 編譯的程式占用的記憶體分為以下幾個部分 1 棧區 stack 由編譯器自動分配釋放 存放函式的引數值,區域性變數的值等。其 操作方式類似於 資料結構 中的棧。2 堆區 heap 一般由程式設計師分配釋放,若程式設計師不釋放,程式結束時 可能由os回 收 注意它與資料結構中的堆是兩回事,...
RE陣列開多大?
includeusing namespace std int a 200 200 int main for int j 1 j 200 j m 0 while cin m n n 0 m 0 return0 ackermann函式的非遞迴求值 描述已知ackermann函式定義如下 寫出計算ack ...
簡言C語言使用技巧之陣列到底有多大
乙個陣列的所有元素都是同型別的。eg int test array1100 這個語句的意思就是定義乙個陣列 他的名字是est array 他有100個元素 每個元素都是int型的 注意 這個陣列有100個元素,不是101個,這裡不從零開始數,那麼什麼時候從零開始數呢?答 下標!下標是從0開始標號的 ...