"赋值丢弃'const'限定符'非常量指针上的错误

yas*_*sar 3 c pointers const

在以下功能中:

char *mystrtok(const char *input, const char *delim,char *rest) {
    int i;
    for (i = 0; input[i] != *delim && input[i] != '\0'; ++i) {
        continue;
    }
    char *result = malloc(sizeof(char) * (i + 2));
    memcpy(result, input, i + 1);
    result[i + 1] = '\0';
    if (input[i + 1] != '\0') 
        rest = input + i + 2;
    else
        rest = NULL;
    return result;
}
Run Code Online (Sandbox Code Playgroud)

然而,正如你所看到的,我正在assignment discards 'const' qualifier from pointer target type寻找这条线rest = input + i + 2,休息不是一个恒定的指针.我在这做错了什么?

lit*_*adv 8

input是指向常量char的指针,并且您将其指定给指向非常量 char 的指针.可能是一个有趣的阅读.