c 二維陣列指標

2021-08-14 02:38:56 字數 1212 閱讀 1303

1.定義指標指向二維陣列

為了方便根據使用者輸入動態定義二維陣列的行和列,引入變數rowsnum(行),colsnum(列)。

以定義5行4列的二維陣列為例,

int rowsnum = 4;

int colsnum = 5;

float** a = new float*[rowsnum];

for(int i = 0; i < rowsnum; i++)

示意圖如下:

2.二級指標記憶體的釋放

二級指標記憶體的釋放與記憶體的申請類似,具體**如下:

for(int i = 0; i < rowsnum; i++)

delete a;

注意:程式在執行完相關功能後應該釋放申請過的記憶體。雖然程式結束時作業系統會自動清除,但對於需要長時間執行的程式來說,如果不及時釋放記憶體的話,程式的執行效率會越來越低,嚴重甚至占用完大部分系統記憶體,影響其他程式的執行。

3.舉例

例子中展示了指標指向一維陣列,指標指向二維陣列的用法。

#include using namespace std;

void test(float** a, float* b, const float* c)

int main()

float* b = new float[2];

float cbase[2] = ;

float* c = cbase;

test(a, b, c);

cout << "a:" << endl;

for(int i = 0; i < rowsnum; i++)

cout << endl;

} cout << "b:" << endl;

for(int j = 0; j < 2; j++)

cout << endl;

cout << "c:" << endl;

for(int j = 0; j < 2; j++)

for(int i = 0; i < rowsnum; i++)

delete a;

delete b;

return 0;

}

C 二維陣列指標

概括的說,指標其實就是可變陣列的首位址,說是可變陣列,是 指其包含內容的數量的可變的,並且是可動態申請和釋放的,從而充 分節約寶貴的記憶體資源。我一向喜歡一維陣列,除非萬不得已,我一 般是不用二維陣列的,多維的則更是很少涉足了。因為一維簡單,容 易理解,而用指標指向的多維陣列就具有相當的複雜性了,也...

C語言二維陣列指標(指向二維陣列的指標)

二維陣列的定義 int matrix 見圖的操作那篇文章裡面的定義 或者這篇文章提供了另外一種方法。二維陣列在概念上是二維的,有行和列,但在記憶體中所有的陣列元素都是連續排列的,它們之間沒有 縫隙 以下面的二維陣列 a 為例 int a 3 4 從概念上理解,a 的分布像乙個矩陣 0 1 2 3 4...

二維陣列 二維陣列和指標

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