1

これを試すと、添え字コンパイラ エラーが発生します。

int **arrays;
// allocate and initialize it....
int pos1 = 0;
int pos2 = 1;
int value = (*arrays[pos1])[pos2];

かっこ内の部分がint*ポインタへの逆参照である場合、配列アクセスが正当でないのはなぜですか?

4

3 に答える 3

3

括弧内はint. まず、arrays[pos1]ポインター ( ) を生成し、それを (前置演算子int*を介して) 逆参照します。*したがって、(*arrays[pos1])単純なintであり、ポインターではありません。

目的が多次元配列内の位置にアクセスすることだけである場合は、を忘れて*次を使用してください。

arrays[pos1][pos2]
于 2013-02-19T05:02:33.647 に答える
2

問題は次の行にあります。

int value = (*arrays[pos1])[pos2];

あなたは を持ってint **います 、それを にします 、それを実行arrays[pos1]するint *ことでさらに逆参照している*arrays[pos1]ため、 を実行すると、エラーが発生するのは and(*arrays[pos1])[pos2](*arrays[pos1])intありません。int*

あなたはただすることができます

int value = arrays[pos1][pos2];
于 2013-02-19T05:05:00.223 に答える
0

値 (勾配) を入れてから合計線をトレースする方法。配列を動作させるには、括弧を使用した実際の演習です。ヒラルキーな順序かもしれません。であること

演算結果記号 [ ][ ] を含む、構造記号 { } を持つ FOR ループ。配列 Display を生成するのは FOR ループです。

まともなセットアップまたは完全な意味不明なものを得るために、マージンは比較的小さいです。目的は、情報を 2D 配列に格納することです。そこに新しい情報を入れて、後でその情報スロットにアクセスします。私はそれを楽しんで、ロジックビーストがどのように反応するかを見ようとしています. 1000時間のトレーニングの範囲で、あなたはそれの感覚をつかむべきだと言われています:)

   #include <stdio.h>
   int main()
   //2D_Array. Multilist. Sumline and Total Sum .
   //Select each coordinate by pressing ENTER after each number .
   //KHO2016.no7. mingw (TDM-GCC-32) . c-ansi .
   {
   //declare, valuate
   int a,b,c=1,d=1,i,j,k,l,sum0=0;
   int ar_a[20][20];

   //calculate
   jump0:
   for (l=0;l<1;l++)                // vary the value l<1 - l<10
   {printf ("M.M.M Shelf %d\n",l); // SHELF2
   for (k=0;k<1;k++)              // SHELF1
   {printf ("SumLine%d = %d\n",k,sum0);
   {for (i=1;i<6;i++)           // COLUMS .
   for (j=0;j<1;j++)           // LINES . per COLUM 
   {ar_a[i][j]=d*c++;         // put value into 2D_array indevidual result slot.
   sum0=sum0+(ar_a[i][j]);
   printf ("%d%d(%.2d*%.2d=%.3d)\t",i,j,d,c-1,ar_a[i][j]);}}}}

   printf ("TOTAL SUM = %d . Select 2 coordinates [1-5] enter, [0] enter: \n",sum0);
   scanf ("%d%d",&a,&b);
   printf ("You selected : %d and %d . Result value = %d\n",a,b,ar_a[a][b]);
   goto jump0;

   //terminate
   return 0;
   }
于 2016-08-30T00:33:51.223 に答える