作者nana0130 (小那)
看板C_and_CPP
標題[問題] 請問二維陣列與雙重指標問題
時間Sat Oct 2 23:46:17 2010
遇到的問題: (題意請描述清楚)
我有三個 二維陣列分別是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
→ james732:置底文第十二戒? 10/02 23:51
→ james732:另外,程式排版是一種禮貌.... 10/02 23:52
推 stupid0319:ADD((int *)A,(int *)B,(int *)C); 參數跟宣告的不同 10/02 23:57
→ nana0130:謝謝大家,真是不好意思>"< 10/03 00:45
→ james732:我都不知道該說樓上人很好還是人很狠了...XDD 10/03 01:16
→ loveme00835:我再照原版的改改看 10/03 01:18
→ loveme00835:一定要傳指標 ? 10/03 01:27
→ nana0130:謝謝大家,我剛剛有改出來了,就像love給的網頁說的那樣 10/03 01:50