[問題] 請問二維陣列與雙重指標問題

看板C_and_CPP (C/C++)作者 (小那)時間15年前 (2010/10/02 23:46), 編輯推噓3(307)
留言10則, 4人參與, 最新討論串1/1
遇到的問題: (題意請描述清楚) 我有三個 二維陣列分別是A B C 我想作 C=A+B 但是得用雙重指標 還有一個function叫 void ADD(int **a, int **b, int **c, int ** d) 好吧 ,我承認這是我的作業,但是我真的快想破頭了 請各位高手幫幫我 我猜是傳遞指標那邊錯了@@ 感謝大家 嗚嗚~~@QQ 希望得到的正確結果: C陣列的元素都是3 程式跑出來的錯誤結果: 52 D:\ftpshare\test.cpp cannot convert `int*' to `int**' for argument `1' to `int ADD(int**, int**, int**)' 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) Dev-C++, Windows 有問題的code: (請善用置底文標色功能) #include<iostream> using std::cout; using std::cin; using std::endl; const int m=5; const int n=5; int ADD(int **a, int **b, int **c) { for(int i=0;i <m; i++) { for(int j=0 ; j<n ; j++) { *(*(c+m)+n)= *(*(a+m)+n) + *(*(b+m)+n); } } } int main() { int A[5][5]={1},B[5][5]={0},C[5][5]={0},D[5][5]={0}; for(int i=0;i<5;i++) { for(int j=0;j<5;j++) { A[i][j]=1; } } for(int i=0;i<5;i++) { for(int j=0;j<5;j++) { B[i][j]=2; } } cout<< *(*(A+0)+0); cout<< *(*(B+0)+0); *(*(C+0)+0)= *(*(A+0)+0) + *(*(B+0)+0); cout<< *(*(C+0)+0); ADD((int *)A,(int *)B,(int *)C); for(int i=0;i<5;i++) { for(int j=0;j<5;j++) {cout<<C[i][j]<<" "; } cout<<endl; } system("PAUSE"); return 0; } 補充說明: -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.20.161.166

10/02 23:51, , 1F
置底文第十二戒?
10/02 23:51, 1F

10/02 23:52, , 2F
另外,程式排版是一種禮貌....
10/02 23:52, 2F

10/02 23:57, , 3F
ADD((int *)A,(int *)B,(int *)C); 參數跟宣告的不同
10/02 23:57, 3F

10/03 00:45, , 4F
謝謝大家,真是不好意思>"<
10/03 00:45, 4F

10/03 01:11, , 5F
http://codepad.org/GiQUmnn4 看懂你也不用上課了
10/03 01:11, 5F

10/03 01:16, , 6F
我都不知道該說樓上人很好還是人很狠了...XDD
10/03 01:16, 6F

10/03 01:18, , 7F
我再照原版的改改看
10/03 01:18, 7F

10/03 01:27, , 8F
一定要傳指標 ?
10/03 01:27, 8F

10/03 01:44, , 9F
10/03 01:44, 9F

10/03 01:50, , 10F
謝謝大家,我剛剛有改出來了,就像love給的網頁說的那樣
10/03 01:50, 10F
文章代碼(AID): #1CfrFB6Y (C_and_CPP)
文章代碼(AID): #1CfrFB6Y (C_and_CPP)