the_beginner Ответов: 1

Почему я получаю предупреждение за это?


char *str="My_Name";


предупреждение: устаревшее преобразование из Строковой константы в 'char*' [- Wwrite-strings]|

Что я уже пробовал:

Я не понимаю причины этого предупреждения.

Mohibur Rashid

попробуйте char str []= " константа";

the_beginner

спасибо

1 Ответов

Рейтинг:
0

Kornfeld Eliyahu Peter

Причина в том, как вы пытаетесь инициализировать строку (char*) - которая не является постоянной - с постоянным значением...
У вас есть два способа избавиться от предупреждения:
1. выключите флаг - - Wno-write-string
2. Напишите правильный код:
2.1 const char *str = " My_Name";
2.2 char str [] = " мое имя";


the_beginner

Спасибо за ответ.
Таким образом, нет никакой разницы между char *str и char str [], за исключением того, что char *str постоянен

Kornfeld Eliyahu Peter

Нет.
*str-это указатель на const (но не определенный как const, и это причина предупреждения)
str [] - это массив, который инициализируется некоторыми значениями...

the_beginner

спасибо, понял

CPallini

Мой 5.

Kornfeld Eliyahu Peter

Спасибо...