Да, вы должны беспокоиться об этом!
Вы должны объявить это как:
const char* myString = "i like declaring strings like this";
mystring
- указатель на строковый литерал "i like declaring strings like this"
, а строковый литерал находится в пространстве памяти (определенном реализацией), которое не должно изменяться вашей программой.
Изменение строкового литерала приводит к неопределенному поведению .
Следовательно, C ++ 03 Standard устарел, объявляя строковые литералы без ключевого слова const
, Это гарантирует, что строковый литерал не может быть изменен через указатель.
Ответ на ваш вопрос Редактировать, @Benjamin уже опубликовал в комментариях, просто цитируя свой ответ:
Использовать массив:
char myString [] = "Мне нравится объявлять такие строки";
Это копирует литерал в массив, и копия может быть изменена