1. 程式人生 > >C++中有關二維陣列的問題

C++中有關二維陣列的問題

1.[錯誤] 無法將 “int () [3]” 轉換為 “int () [100]”, 用於引數 “1” 到 “void 替換” (int (*) [100], int, int) "
問題:無法直接將int a[][]作為引數
原因:二維陣列中是按一行一行進行儲存,儲存在連續的記憶體地址中。如果未定義相應的行與列,那麼其在儲存過程中很難判斷哪裡斷開,無法形成二維陣列。
解決方法:
定義相應的行與列。如 int a[][100]或int(*a)[3]
2.
在main函式中定義了兩個a[100],b[100]的字元陣列,cin>>a,cin>>b試圖在子函式中定義一個二維陣列[][]來儲存這兩個陣列的內容並對其進行修改,用了int m[100][100]
問題:無法進入子函式
原因:在子函式中定義二維陣列時應用你定義的a,b的具體長度來定義
解決方法:
int row=strlen(a),int col=strlen(b);
int m[row][col];