我试图在C中提取子字符串。我对字符串函数(char command [])有一个输入,并取出其中的一部分。在调试代码后,我注意到当我到达函数的后续部分时,值(条件和累加)将被擦除。为什么是这样? (请参见下面的代码)
int multiply(char command[]) {
char condition[5];
memmove(condition, command, 4);
condition[3] = '\0';
char accumulate[2];
memmove(accumulate, &command[4], 1);
accumulate[2] = '\0';
char set[2];
memmove(set, &command[5], 1);
set[2] = '\0';
return EXIT_SUCCESS;
}
根据调试器,定义set时将清除条件,并在EXIT_SUCCESS时将累加器清除。
答案 0 :(得分:0)
condition
时,会删除 set
,因为在定义condition
之后您不使用set
,因此编译器通过将两者存储在相同的位置。
accumulate
被删除,因为它是局部变量。