c/c++記憶體知識(二)
計算記憶體容量
用運算子sizeof 可以計算出陣列的容量(位元組數)。
int a[3],sizeof(a)的值是12(注意別忘了』\0
』)。p是指標,指向a,但是sizeof(p)的值卻是4。這是因為sizeof(p)得到的是乙個指標變數的位元組數,相當於sizeof(char*),而不是p 所指的記憶體容量。
c++/c語言沒有辦法知道指標所指的記憶體容量,除非在申請記憶體時記住它。
注意當陣列作為函式的引數進行傳遞時,該陣列自動退化為同型別的指標,如下示例:
void func(char a[100])
C C 記憶體知識 一
乙個由c c 編譯的程式占用的記憶體分為以下幾個部分 二 例子程式 這是乙個前輩寫的,非常詳細 int a 0 全域性初始化區 char p1 全域性未初始化區 main int b 棧 char s abc 棧 char p2 棧 char p3 123456 123456 0在常量區,p3在棧上...
C C 記憶體知識 四
c c 記憶體知識 四 有了malloc free 為什麼還要 new delete malloc 與free 是c c 語言的標準庫函式,new delete 是c 的運算子。它們都可用於申請動態記憶體和釋放記憶體。對於非內部資料型別的物件而言,光用maloc free 無法滿足動態物件的要求 物...
C C 記憶體知識 一
乙個由c c 編譯的程式占用的記憶體分為以下幾個部分 二 例子程式 這是乙個前輩寫的,非常詳細 int a 0 全域性初始化區 char p1 全域性未初始化區 main int b 棧 char s abc 棧 char p2 棧 char p3 123456 123456 0在常量區,p3在棧上...