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

нарушение прав доступа при записи. объясните, почему? и как избежать? - C++

Восстановить пароль Регистрация
 
Miwa123
37 / 37 / 1
Регистрация: 16.04.2013
Сообщений: 317
Записей в блоге: 1
22.06.2013, 20:37     нарушение прав доступа при записи. объясните, почему? и как избежать? #1
C++
1
2
3
4
5
6
7
8
void Stroka::F1(char*word)
{
char *point;
if((point=strstr(data,word)))
{
    strrev(word);
}
}
нарушение прав доступа при записи. объясните, почему? и как избежать?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NewT
Заблокирован
23.06.2013, 08:05     нарушение прав доступа при записи. объясните, почему? и как избежать? #2
Потому что ты хочешь изменить константу.

Добавлено через 57 секунд
char* point указывает на константную область памяти, которую нельзя изменить, т.е. "point ".
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11815 / 6794 / 769
Регистрация: 27.09.2012
Сообщений: 16,867
Записей в блоге: 2
Завершенные тесты: 1
23.06.2013, 09:15     нарушение прав доступа при записи. объясните, почему? и как избежать? #3
@NewT, Из данного контекста нельзя сказать на что указывает point, ибо неизвестно на что указывает data.
NewT
Заблокирован
23.06.2013, 09:17     нарушение прав доступа при записи. объясните, почему? и как избежать? #4
ну в основном только это может быть причиной
или же
Цитата Сообщение от NewT Посмотреть сообщение
ы хочешь изменить константу.
где то в коде
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11815 / 6794 / 769
Регистрация: 27.09.2012
Сообщений: 16,867
Записей в блоге: 2
Завершенные тесты: 1
23.06.2013, 09:30     нарушение прав доступа при записи. объясните, почему? и как избежать? #5
В данном случае без разницы, ибо значения, на которые point не изменяются в данном коде
NewT
Заблокирован
23.06.2013, 09:33     нарушение прав доступа при записи. объясните, почему? и как избежать? #6
я думаю тут только автор знает что у него и где так как дана только процедура
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11815 / 6794 / 769
Регистрация: 27.09.2012
Сообщений: 16,867
Записей в блоге: 2
Завершенные тесты: 1
23.06.2013, 09:35     нарушение прав доступа при записи. объясните, почему? и как избежать? #7
Возможно word указывает на константный строковый литерал и креш происходит при strrev.
Ab
75 / 75 / 1
Регистрация: 03.05.2012
Сообщений: 161
23.06.2013, 09:38     нарушение прав доступа при записи. объясните, почему? и как избежать? #8
С point здесь всё в порядке. Меняется в этом коде строка по адресу word, ее и надо смотреть.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.06.2013, 13:50     нарушение прав доступа при записи. объясните, почему? и как избежать?
Еще ссылки по теме:

C++ При обращении к структуре из класса возникает исключение:нарушение прав доступа при записи. Почему?
C++ Нарушение прав доступа при записи
Нарушение прав доступа при записи C++

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

Или воспользуйтесь поиском по форуму:
Miwa123
37 / 37 / 1
Регистрация: 16.04.2013
Сообщений: 317
Записей в блоге: 1
23.06.2013, 13:50  [ТС]     нарушение прав доступа при записи. объясните, почему? и как избежать? #9
Цитата Сообщение от Croessmah Посмотреть сообщение
Возможно word указывает на константный строковый литерал и креш происходит при strrev.
в точку. спасибо
Yandex
Объявления
23.06.2013, 13:50     нарушение прав доступа при записи. объясните, почему? и как избежать?
Ответ Создать тему
Опции темы

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