-1

このプログラムの2つの異なる場所で同じエラーが発生しています。このエラーは、1d、2d、3dアレイを作成して値を格納し、同時に表示するはずです。 エラー:添字が配列またはポインタ型/表現を必要とするが、ポインタ・ツー・オブジェクトタイプ を有していなければならないエラーは、二回変数名cを使用する[R] [C] [深さ]この配列プログラムで何が問題になっていますか?

#include<iostream> 
using namespace std; 
#define ROW 5 
#define COL 5 
#define DEPTH 5 

int main() 
{ 
int *a;   // 1d array 
a=new int [COL]; 

int (*b) [COL];   //2d array 
b=new int [ROW][COL]; 

int (*c)[ROW][COL]; 
c=new int [ROW][COL][DEPTH]; // 3d array 


//--------------------------------------------------------------------------------- 



// storing values in the arrays: 

for(int i=0;i<COL;i++) 
{ 
    a[i]=i+2; 
    cout << a[i]; 
} 

// 2d array 
for(int r=0;r<ROW;r++) 
{ 
    for(int c=0;c<COL;c++) 
    { 
     b[r][c]=r+c+2; 
     cout << b[r][c]; 
    } 
} 

// 3d array 
for(int r=0;r<ROW;r++) 
{ 
    for(int c=0;c<COL;c++) 
    { 
     for(int depth=0;depth<DEPTH;depth++) 
     { 
      c[r][c][depth]=r+c+depth+2;    //error 
      cout << c[r][c][depth];     //same error 
     } 
    } 

} 


//-------------------------------------------------------------------------------------  


} 

答えて

8

C発現のためのものです配列の場合は1回、ループカウンタの場合は2回目です。

0

ハワードが正しい。 cをネストされたforループの整数として再宣言しますfor(int c=0;c<COL;c++)

cをループのスコープのintとして再宣言しました。ループには別の変数名を指定する必要があります。

例:これは、将来的にはより意味のある変数名を使用するのに役立つかもしれないあなたの問題をコンパイルし、修正する必要があり

for(int k=0;k<COL;k++) 
{ 
    for(int depth=0;depth<DEPTH;depth++) 
    { 
     c[r][k][depth]=r+k+depth+2;    
     cout << c[r][k][depth];     
    } 
} 

関連する問題