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

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

Войти
Регистрация
Восстановить пароль
 
OMGHero
2 / 2 / 0
Регистрация: 16.02.2011
Сообщений: 36
#1

Access violation writing exeption - C++

04.05.2011, 12:42. Просмотров 546. Ответов 5
Метки нет (Все метки)

Добрый день! Почему такой код вызывает Access violation writing exeption ?
C++
1
2
3
char *str = "Hello";
    char *p = str;
    *p = 'W';
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.05.2011, 12:42     Access violation writing exeption
Посмотрите здесь:

C++ Access violation
__asm ошибка Access violation writing location C++
Access violating writing location 0x00000016 C++
C++ Access violation writing location
Непонятная ошибка "Access violation writing location 0xcdcdcdd5" C++
Исключение Access violation writing location 0x0582D000 C++
C++ Ошибка компилятора: "Access violation writing location"
C++ Ошибка Access violation writing location
C++ Access violation writing location
C++ Код выдает ошибку Access violation writing location
C++ Unhandled exception at 0x0F73DF62 | 0xC0000005: Access violation writing location
Access violation writing location C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ISergey
Maniac
Эксперт С++
1347 / 880 / 52
Регистрация: 02.01.2009
Сообщений: 2,645
Записей в блоге: 1
04.05.2011, 12:53     Access violation writing exeption #2
Цитата Сообщение от OMGHero Посмотреть сообщение
Добрый день! Почему такой код вызывает Access violation writing exeption ?
C++
1
2
3
char *str = "Hello"; // Это константа!
char *p = str; // Тоже самое..
*p = 'W'; // Попытка изменить константу
OMGHero
2 / 2 / 0
Регистрация: 16.02.2011
Сообщений: 36
04.05.2011, 13:06  [ТС]     Access violation writing exeption #3
str не константа, можно явно проверить и увеличить на 1.
*str - константа? почему?
ForEveR
Модератор
Эксперт С++
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
04.05.2011, 13:08     Access violation writing exeption #4
OMGHero, Потому что компилятор кладет эту строку в константную область памяти. Именно поэтому лучше не пытаться наколоть кого-то, а писать
C++
1
const char* str = "Hello"
.
OMGHero
2 / 2 / 0
Регистрация: 16.02.2011
Сообщений: 36
04.05.2011, 13:20  [ТС]     Access violation writing exeption #5
а как сделать так что бы комплятор поместил это не в константную область памяти?
ISergey
Maniac
Эксперт С++
1347 / 880 / 52
Регистрация: 02.01.2009
Сообщений: 2,645
Записей в блоге: 1
04.05.2011, 13:26     Access violation writing exeption #6
C++
1
2
3
char str[] = "Hello";
str[0] = 'W';
*str = 'H';
Yandex
Объявления
04.05.2011, 13:26     Access violation writing exeption
Ответ Создать тему
Опции темы

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