我的代码如下所示:
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]--
吗?
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_array
7 个索引,并且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");
}
尝试这个
int some_array[8];
int some_array[7] = an_integer;
if ( 550 < some_value ) {
some_array[7] = some_array[7]--;
log("Lowered the value");
}