靜態二維陣列和動態二維陣列(C語言)

2021-07-30 07:02:00 字數 896 閱讀 8210

1、理解什麼是靜態二維陣列和動態二維陣列

靜態二維陣列:可以理解為程式中如下定義的陣列(定義乙個3行4列的靜態二維陣列)

int [3][4] = , , };

動態二維陣列:可以理解為程式中如下定義的陣列(定義乙個3行4列的動態二維陣列)

#include#include#define rows 3

#define cols 4

int main(int argc, char *argv) {

int **ppi = null; //定義整形二維陣列指標變數

int i;

ppi = (int **)malloc( rows * sizeof(int));//為3行4列動態二維陣列每行的首位址分配記憶體

for (i=0; i

2、靜態二維陣列記憶體布局

圖示說明:

1)靜態二維陣列實質是乙個陣列,記憶體空間也是連續的

2)ppi是靜態二維陣列變數,指向二維陣列首位址

3、動態二維陣列記憶體布局

圖示說明:

1)ppi是動態二維陣列變數,執行二維陣列首位址

2)ppi[0]、ppi[1]、ppi[2]分別為每行的首位址

二維陣列 二維陣列和指標

include using namespace std int main 如上面這段程式所示,通過取位址符 指標 p 獲得了變數 a 的位址,那麼解引用符 就可以從 p 中得到變數 a 的值。也就是說,p a和 p a是等價的。p 是變數 a 的位址,從 p 中就可以取出 a 的值。反之,能從 p ...

c 二維動態陣列

很多時候,我們無法得知或者不用去考慮程式在執行時需要建立多大的陣列,此時動態資料的建立就會顯得格外重要了,二維動態陣列具有很高的靈活性和實用性,廢話不多說,原始碼呈上!其中包括了一些vs記憶體檢測的語句,大家看注釋吧 include include using namespace std ifdef...

二維動態陣列

之前都是寫的小程式,一直用的靜態陣列,也沒出現問題。可是,最近碰到大型程式和工程,這時就要用動態陣列了。因為靜態陣列時儲存在棧中的,而動態陣列儲存在堆中。計算機的棧只有1m大小,而堆可以理論上達到計算機記憶體大小,可見當大型工程資料量非常大時,必須使用動態陣列了。c 的動態陣列的建立和刪除要用到ne...