-2
私はC++のポインタについて学んでいますが、私のコードではほかに何が欠けているのか分かりません。私は単純に2次元配列の要素の合計を取得しようとしています。ここでポインタ付き2次元配列
は私のコードです:
#include <iostream>
//function prototype
int totalRow(int *arr, int row, int col);
int main(){
int r, c;
std::cout<<"How many rows in array?: ";
std::cin>>r;
std::cout<<"How many columns in array?: ";
std::cin>>c;
std::cout<<std::endl;
int arr[r][c];
for(int i=0; i<r; i++)
{
for(int e=0; e<c; e++)
{
std::cout<<"Enter arr[ "<<i+1<<"] [ "<<e+1<<" ]"<<std::endl;
std::cin>>arr[i][e];
}
}
std::cout<<totalRow(arr,r,c)<<std::endl;
return 0;
}
int totalRow(int *arr, int row, int col)
{
int sum=0;
for(int i=0; i<row; i++)
{
for(int e=0; e<col; e++)
{
sum+=*arr[i][e]; // I get an error here saying: subscripted value is
// not an array, pointer, or vector
}
}
return sum;
}
任意のヘルプ?ありがとう。
を使用して2次元配列を渡すことができます2次元配列を 'int *'に変換することができないので、 'main()'の "totalRow(arr、r、c)"行のエラーです。 'int []'は 'int *'に変換できますが、 'int [] []'は変換できません。 –