Как исправить 'возврат отбрасывает' const 'квалификатор из целевого типа указателя' в C - PullRequest
0 голосов
/ 03 апреля 2019

Работает над перезаписью метода strchr, определенного в string.h. И я получаю "возврат отбрасывает" const "квалификатор из целевого типа указателя"

char* strchr(const char* str, int character){
        int idx = 0;
        do{
                if (str[idx] == character){
                        return &str[idx]; // This line has the error
                }
                idx++;
        } while (str[idx] != '\0');

        return NULL;
} // any help would be great, thanks.

1 Ответ

0 голосов
/ 03 апреля 2019

Несколько замечаний:

  1. Поскольку вы не можете изменить прототип, вы должны выбросить константу в return: return (char *) &str[idx];.
  2. Ваша реализация имеетошибка, считается, что если strchr("", 'a') вызывается.Вы увеличиваете idx внутри тела цикла перед проверкой NUL, чтобы он выходил за пределы конца строки.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...