-1

我的代码如下所示:

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

我希望如果我在日志中看到字符串“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_array8 个索引。您有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 回答