Форум программистов, компьютерный форум CyberForum.ru

Строка == массив элементов char? - C++

Восстановить пароль Регистрация
 
BESSON_off
 Аватар для BESSON_off
3 / 0 / 1
Регистрация: 08.07.2013
Сообщений: 329
26.01.2016, 20:15     Строка == массив элементов char? #1
Есть следующий код:
C++
1
2
3
4
5
int main() {
char* s = "HELLO\n";
s[0] = 'X';
    return 0;
}
Почему я не могу так сделать? По сути я имею указатель на первый элемент моего массива (строки). Моя строка не константная... Почему не могу изменить элемент? Или строка != массив?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.01.2016, 20:15     Строка == массив элементов char?
Посмотрите здесь:

Строка: Строку разбить на слова и слова запихнуть в массив char. C++
C++ Составить новый массив, изменяя значения элементов в зависимости от того, отсортирована ли текущая строка
C++ Двумерный массив: строка, в которой находится самая длинная серия одинаковых элементов
Массив char в переменную char C++
Копирование char* в массив char[i]* C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
olya7
476 / 293 / 91
Регистрация: 18.02.2013
Сообщений: 684
26.01.2016, 20:22     Строка == массив элементов char? #2
Цитата Сообщение от BESSON_off Посмотреть сообщение
C++
1
char* s = "HELLO\n";
s является указателем на константный объект, который не подлежит изменению
8-BITOV
513 / 455 / 83
Регистрация: 05.05.2014
Сообщений: 1,077
26.01.2016, 20:24     Строка == массив элементов char? #3
Цитата Сообщение от BESSON_off Посмотреть сообщение
Почему я не могу так сделать?
Некоторые компиляторы записывают в этом случае "HELLO\n" в защищенную область. Напиши
C++
1
char s[] = "HELLO\n";
castaway
Эксперт С++
4848 / 2987 / 368
Регистрация: 10.11.2010
Сообщений: 11,028
Записей в блоге: 10
Завершенные тесты: 1
26.01.2016, 20:28     Строка == массив элементов char? #4
Цитата Сообщение от BESSON_off Посмотреть сообщение
Почему не могу изменить элемент?
Потому что указатель указывает на строковой литерал - константу.
Сообщением выше указан изменяемый вариант.
BESSON_off
 Аватар для BESSON_off
3 / 0 / 1
Регистрация: 08.07.2013
Сообщений: 329
26.01.2016, 20:45  [ТС]     Строка == массив элементов char? #5
Спасибо...
Ответ пришел в голову сразу после написания темы +)
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11847 / 6826 / 771
Регистрация: 27.09.2012
Сообщений: 16,927
Записей в блоге: 2
Завершенные тесты: 1
26.01.2016, 21:03     Строка == массив элементов char? #6
Строковые литералы в Си/Си++
Yandex
Объявления
26.01.2016, 21:03     Строка == массив элементов char?
Ответ Создать тему
Опции темы

Текущее время: 15:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru