Я пишу небольшую функцию в C, которая устраняет ведущие пробелы, но это дает мне выражение, которое должно быть изменяемым значением lvalue.«Ошибка: выражение должно быть изменяемым значением lvalue» при попытке изменить местоположение указателя char *
char str1[20];
strcpy (str1, otherStr);
for (int i = 0; i < strlen(str1); i++)
{
if (!isspace(str1[i]))
str1 = &(str1[i]);
}
Что я здесь делаю неправильно? (И да, определяется другойStr)
Вы не можете изменить, где находится массив, он статически выделяется компилятором во время компиляции. Это правда, что массивы * распаковываются * указателями, но они не являются указателями. Если вы хотите использовать его как истинный указатель, вам нужно использовать фактический указатель. –
В коде отсутствует указатель 'char *'. Массив не является указателем. – AnT