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

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

Восстановить пароль Регистрация
 
egoriy
0 / 0 / 0
Регистрация: 16.08.2013
Сообщений: 11
29.06.2014, 17:59     Слетает прога при присваивании разименованованному указателю #1
Помогите плз!
Не могу присвоить значение элементу строки;
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++ Не изменяется элемент вектора при работе с ним по указателю
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
0x10
2426 / 1598 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
29.06.2014, 18:02     Слетает прога при присваивании разименованованному указателю #2
Строковый литерал - const char*, естественно, его нельзя изменять.
Используйте массив, а не указатель.
Jewbacabra
1794 / 1509 / 541
Регистрация: 24.04.2014
Сообщений: 4,242
29.06.2014, 18:03     Слетает прога при присваивании разименованованному указателю #3
egoriy, "12345" - строковый литерал, изменять его нельзя
zss
Модератор
Эксперт С++
 Аватар для zss
5953 / 5558 / 1787
Регистрация: 18.12.2011
Сообщений: 14,204
Завершенные тесты: 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
Сообщений: 11
29.06.2014, 19:23  [ТС]     Слетает прога при присваивании разименованованному указателю #5
Всем спасибо - вразумили - разобрался
Yandex
Объявления
29.06.2014, 19:23     Слетает прога при присваивании разименованованному указателю
Ответ Создать тему
Опции темы

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