Возможный дубликат:
Прекращение преобразования C ++ из строковой константы в char *
Я получаю сообщение об «устаревшем преобразовании из строковой константы в« char * »» на компиляторе gcc в 3 местах.
Когда я компилировал его в кодовый блок, там не было никакой ошибки.
char* decodeCode(char* encodedString)
{
const char* decodedString = ""; // ERROR
char* a = encodedString;
char store[10000];
for(int j=0;j <strlen(a);j++)
{
if (isdigit(a[j]) || a[j] == '#')
continue;
else return ""; //ERROR
}
}
int main()
{
const char* a;
a = decodeCode("6999066263304447777077766622337778"); // ERROR
printf("%s",a);
return 0;
}
Ты хоть представляешь, как я могу это исправить? Если так, пожалуйста, запишите это ясно (я новичок …).
Вам нужно добавить const
квалификатор для объявления переменной и функции, чтобы исправить это:
const char* decodeCode(const char* encodedString) {
....
const char* a = encodedString;
....
}
Примечание: нижняя часть вашей функции отсутствует, но убедитесь, что вы не возвращаете store
не копируя это.
Других решений пока нет …