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

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

Войти
Регистрация
Восстановить пароль
 
egoriy
0 / 0 / 0
Регистрация: 16.08.2013
Сообщений: 12
#1

Слетает прога при присваивании разименованованному указателю - C++

29.06.2014, 17:59. Просмотров 185. Ответов 4
Метки нет (Все метки)

Помогите плз!
Не могу присвоить значение элементу строки;
C++
1
2
3
4
5
6
7
8
#include <iostream> 
using namespace std;
 
main() {
    char* s1 = (char*) "12345";
    *s1 = '2';
    cout << s1;
}
этот код слетает при выполнении
"обнаружена ошибка. Приложение будет закрыто. Приносим извинения за неудобства."
(компилируется без ошибок)

если закоментировать присваивание:
C++
1
2
3
4
5
6
7
8
#include <iostream> 
using namespace std;
 
main() {
    char* s1 = (char*) "12345";
    //*s1 = '2';
    cout << s1;
}
все работает.
Может есть у кого какие идеи
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.06.2014, 17:59     Слетает прога при присваивании разименованованному указателю
Посмотрите здесь:

C++ При ENTER закрывается прога
C++ надо что то добавить!!прога просто выводит список групп,учеников и первых 3 оценок.надо чтобы прога в конце показывала по убыванию средего балла
Почему при сборке Releas'а прога без VC++ не идёт? C++
Запись по указателю C++
C++ Не изменяется элемент вектора при работе с ним по указателю
Ошибка при присваивании массиву char значения C++
Присвоение значения указателю C++
Почему прога может зависать при инициализации массива C++
Обращение по нулевому указателю при преобразование типов C++
Порядок вызова конструкторов при присваивании объектов одного класса C++
C++ Нарушение прав доступа при присваивании вектора
Элементы списка при присваивании передаются в обратном порядке C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
0x10
2447 / 1619 / 237
Регистрация: 24.11.2012
Сообщений: 3,982
29.06.2014, 18:02     Слетает прога при присваивании разименованованному указателю #2
Строковый литерал - const char*, естественно, его нельзя изменять.
Используйте массив, а не указатель.
Jewbacabra
1971 / 1635 / 600
Регистрация: 24.04.2014
Сообщений: 4,657
29.06.2014, 18:03     Слетает прога при присваивании разименованованному указателю #3
egoriy, "12345" - строковый литерал, изменять его нельзя
zss
Модератор
Эксперт С++
 Аватар для zss
6115 / 5718 / 1849
Регистрация: 18.12.2011
Сообщений: 14,608
Завершенные тесты: 1
29.06.2014, 18:25     Слетает прога при присваивании разименованованному указателю #4
C++
1
2
3
4
5
main() {
    char s1[] = "12345";// под s1 выделяется память 6 байт и инициализируется строкой
    *s1 = '2';
    cout << s1;
}
egoriy
0 / 0 / 0
Регистрация: 16.08.2013
Сообщений: 12
29.06.2014, 19:23  [ТС]     Слетает прога при присваивании разименованованному указателю #5
Всем спасибо - вразумили - разобрался
Yandex
Объявления
29.06.2014, 19:23     Слетает прога при присваивании разименованованному указателю
Ответ Создать тему
Опции темы

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