-1

次のようなコードがあります。

int some_array[8];
some_array[7] = an_integer;
if ( 550 < some_value ) {
  some_array[7]--;
  log("Lowered the value");
}

ログに「値を下げました」という文字列が表示されれば、コードが実行されていることがわかるはずです。ただし、ログに記録された文字列が表示されますが、値は変更されません。Cで欠けているものはありsome_array[7]--ますか?

4

2 に答える 2

0
int some_array[8];
int some_array[7] = an_integer;  //This is the problem line.
if ( 550 < some_value ) {
   some_array[7]--;
   log("Lowered the value");
}

このコードは、あなたが思っていることをしていません。

some_arrayあなたは8つのインデックスを持っていません。あなたはsome_array7つのインデックスを持っており、実際に保持some_array[7]されているものの範囲外です(ただし、これに対して例外はスローされません)。これを試して:some_array[]C

int some_array[8];
some_array[7] = an_integer;
if ( 550 < some_value ) {
   some_array[7]--;
   log("Lowered the value");
}
于 2013-10-31T01:19:17.423 に答える
-2

これを試して

int some_array[8];
int some_array[7] = an_integer;

if ( 550 < some_value ) {
  some_array[7] = some_array[7]--;
  log("Lowered the value");
}
于 2013-10-31T01:22:15.873 に答える