(1)已知第二維
(2)已知第一維
(3)已知第一維,一次分配內存(保證內存的連續性)
(4)兩維都未知
(5)兩維都未知,一次分配內存(保證內存的連續性)
2.C++動態分配二維數組
(1)已知第二維
(2)已知第一維
(3)已知第一維,一次分配內存(保證內存的連續性)
(4)兩維都未知
(5)兩維都未知,一次分配內存(保證內存的連續性)
多說一句:new和delete要注意配對使用,即有多少個new就有多少個delete,這樣才可以避免內存泄漏!
3.靜態二維數組作為函數參數傳遞
如果采用上述幾種方法動態分配二維數組,那么將對應的數據類型作為函數參數就可以了。這里討論靜態二維數組作為函數參數傳遞,即按照以下的調用方式:
int a[2][3];
func(a);
C語言中將靜態二維數組作為參數傳遞比較麻煩,一般需要指明第二維的長度,如果不給定第二維長度,則只能先將其作為一維指針傳遞,然后利用二維數組的線性存儲特性,在函數體內轉化為對指定元素的訪問。
首先寫好測試代碼,以驗證參數傳遞的正確性:
(1)給定第二維長度
(2)不給定第二維長度
注意:使用該函數時需要將二維數組首地址強制轉換為一維指針,即func((int*)a);