(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);