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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Хрисипп
17 / 27 / 8
Регистрация: 09.02.2016
Сообщений: 212
#1

Почему при изменении литерала const char* программа падает? - C++

26.08.2016, 14:06. Просмотров 183. Ответов 8
Метки нет (Все метки)

точнее литерала. ладно, если бы выходил за пределы
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.08.2016, 14:06     Почему при изменении литерала const char* программа падает?
Посмотрите здесь:
C++ Почему программа падает при сортировке массивов больших размерностей
C++ Чем отличаются объявления const char* и const* char
char operator[](unsigned short offset) const; // что означает const? C++
const char не инициализируется при объявлении C++
C++ Почему падает программа?
Ошибка: Cannot convert 'char const[18]' to 'const wchar_t *' C++
Cannot convert 'const wchar_t *' to 'const char *' C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
John Prick
774 / 707 / 129
Регистрация: 27.07.2012
Сообщений: 2,026
Завершенные тесты: 3
26.08.2016, 14:09     Почему при изменении литерала const char* программа падает? #2
Где код?
Babysitter
80 / 107 / 35
Регистрация: 23.11.2015
Сообщений: 331
Завершенные тесты: 1
26.08.2016, 14:09     Почему при изменении литерала const char* программа падает? #3
а вот так не падает, странно, да?
C++
1
2
3
    char tmp[] = "hello";
    const char *x = tmp;
    tmp[0] = 'H';
HighPredator
5476 / 1842 / 343
Регистрация: 10.12.2010
Сообщений: 5,433
Записей в блоге: 3
26.08.2016, 14:09     Почему при изменении литерала const char* программа падает? #4
Код в студию
HelicopterK52
659 / 202 / 28
Регистрация: 27.07.2016
Сообщений: 475
Завершенные тесты: 1
26.08.2016, 14:11     Почему при изменении литерала const char* программа падает? #5
Цитата Сообщение от Хрисипп Посмотреть сообщение
точнее литерала.
Например, потому что литерал может быть сохранен в read-only памяти?
И вообще, если оно константно, то не нужно его менять.
Babysitter
80 / 107 / 35
Регистрация: 23.11.2015
Сообщений: 331
Завершенные тесты: 1
26.08.2016, 14:13     Почему при изменении литерала const char* программа падает? #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
распространенные ошибки
Хрисипп
17 / 27 / 8
Регистрация: 09.02.2016
Сообщений: 212
26.08.2016, 14:18  [ТС]     Почему при изменении литерала const char* программа падает? #7
Цитата Сообщение от HighPredator Посмотреть сообщение
Код в студию
Цитата Сообщение от John Prick Посмотреть сообщение
Где код?
C++
1
2
3
4
5
6
7
char* e(char* v){
    v[0]='a';
    return v;
}
int main(){
    cout<<e("12");
}
Цитата Сообщение от HelicopterK52 Посмотреть сообщение
Например, потому что литерал может быть сохранен в read-only памяти?
я вот про это и подумал
HelicopterK52
659 / 202 / 28
Регистрация: 27.07.2016
Сообщений: 475
Завершенные тесты: 1
26.08.2016, 15:19     Почему при изменении литерала const char* программа падает? #8
Хрисипп, в Вашем коде также есть небольшая "какашка" - у Вас на литерал "указывает" не константный указатель. Такое преобразование не валидно для C++.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.08.2016, 15:29     Почему при изменении литерала const char* программа падает?
Еще ссылки по теме:
C++ Динамический массив нулевого размера. Почему не падает программа?
Error: incompatible types in assignment of 'const char [5]' to 'char [10]' C++
Ошибка invalid conversion from 'const char*' to 'char*' C++
Невозможно преобразовать параметр 1 из 'char' в 'const char *' C++
Invalid conversion from ‘char’ to ‘const char*’ C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Хрисипп
17 / 27 / 8
Регистрация: 09.02.2016
Сообщений: 212
26.08.2016, 15:29  [ТС]     Почему при изменении литерала const char* программа падает? #9
Цитата Сообщение от HelicopterK52 Посмотреть сообщение
у Вас на литерал "указывает" не константный указатель
да я такими вещами не занимаюсь. просто сейчас вспомнил про это и решил точно выяснить
Yandex
Объявления
26.08.2016, 15:29     Почему при изменении литерала const char* программа падает?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru