为什么我的变量值被删除?

时间:2019-05-27 17:56:22

标签: c substring

我试图在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时将累加器清除。

1 个答案:

答案 0 :(得分:0)

定义了condition时,会删除

set,因为在定义condition之后您不使用set,因此编译器通过将两者存储在相同的位置。

从函数返回时,

accumulate被删除,因为它是局部变量。

相关问题