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 ...