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

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

Войти
Регистрация
Восстановить пароль
 
Miwa123
37 / 37 / 1
Регистрация: 16.04.2013
Сообщений: 317
Записей в блоге: 1
#1

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

22.06.2013, 20:37. Просмотров 381. Ответов 8
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
void Stroka::F1(char*word)
{
char *point;
if((point=strstr(data,word)))
{
    strrev(word);
}
}
нарушение прав доступа при записи. объясните, почему? и как избежать?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.06.2013, 20:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос нарушение прав доступа при записи. объясните, почему? и как избежать? (C++):

При обращении к структуре из класса возникает исключение:нарушение прав доступа при записи. Почему? - C++
Структура Test описана в классе ABC: class ABC{ struct Test { int get_i() { return i; } void put_i(int j) { i = j;} ...

Нарушение прав доступа при записи. Висящий указатель нашел, но не знаю как исправить ситуацию - C++
Здравствуйте! Имеется программа поиска коллизий в хэш-функции #include <stdio.h> #include <stdlib.h> #define n 30 //размер...

Нарушение прав доступа при записи - C++
Пытаюсь написать класс, который бы выполнял инициализацию шрифта в directx и печатал строку на экран. Написал рабочий вариант, где...

Нарушение прав доступа при записи - C++
Привет всем! Извините за тупизм но у меня проблема. #include <iostream> using namespace std; void f(char* str) { int length =...

Нарушение прав доступа при записи - C++
Доброго времени суток всем! Перечитал много тем на форуме и в интернете. Никак не могу решить свою проблему. Мне нужно сравнить символ...

Нарушение прав доступа при записи - C++
#include <iostream> void testfunc(char*& test) { test = 's'; } int main() { char* test = "Test";

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
NewT
Заблокирован
23.06.2013, 08:05 #2
Потому что ты хочешь изменить константу.

Добавлено через 57 секунд
char* point указывает на константную область памяти, которую нельзя изменить, т.е. "point ".
0
Croessmah
Эксперт CЭксперт С++
13232 / 7504 / 846
Регистрация: 27.09.2012
Сообщений: 18,433
Записей в блоге: 3
Завершенные тесты: 1
23.06.2013, 09:15 #3
@NewT, Из данного контекста нельзя сказать на что указывает point, ибо неизвестно на что указывает data.
0
NewT
Заблокирован
23.06.2013, 09:17 #4
ну в основном только это может быть причиной
или же
Цитата Сообщение от NewT Посмотреть сообщение
ы хочешь изменить константу.
где то в коде
0
Croessmah
Эксперт CЭксперт С++
13232 / 7504 / 846
Регистрация: 27.09.2012
Сообщений: 18,433
Записей в блоге: 3
Завершенные тесты: 1
23.06.2013, 09:30 #5
В данном случае без разницы, ибо значения, на которые point не изменяются в данном коде
0
NewT
Заблокирован
23.06.2013, 09:33 #6
я думаю тут только автор знает что у него и где так как дана только процедура
0
Croessmah
Эксперт CЭксперт С++
13232 / 7504 / 846
Регистрация: 27.09.2012
Сообщений: 18,433
Записей в блоге: 3
Завершенные тесты: 1
23.06.2013, 09:35 #7
Возможно word указывает на константный строковый литерал и креш происходит при strrev.
1
Ab
75 / 75 / 1
Регистрация: 03.05.2012
Сообщений: 161
23.06.2013, 09:38 #8
С point здесь всё в порядке. Меняется в этом коде строка по адресу word, ее и надо смотреть.
1
Miwa123
37 / 37 / 1
Регистрация: 16.04.2013
Сообщений: 317
Записей в блоге: 1
23.06.2013, 13:50  [ТС] #9
Цитата Сообщение от Croessmah Посмотреть сообщение
Возможно word указывает на константный строковый литерал и креш происходит при strrev.
в точку. спасибо
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.06.2013, 13:50
Привет! Вот еще темы с ответами:

Нарушение прав доступа при записи - C++
void FilterStamp() { char ch; cout<<"Введите Да или Нет: "; scanf_s("%s",ch); cout<<endl; l1=first; while(l1!=0)...

Нарушение прав доступа при записи - C++
Всем привет, нужно было сделать справочник, atoi(a) выделяет как ошибку, ЧЯДНТ? #include <iostream> #include <fstream> #include...

Нарушение прав доступа при записи - C++
Создаю свой класс ошибок следующим образом: class SecureTransportException { private: SecureLibraryErrorCode errorCode_; ...

Нарушение прав доступа при записи - C++
Есть следующий код: class A { public: virtual someFuncA() = 0; }; class B : public A


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
23.06.2013, 13:50
Ответ Создать тему
Опции темы

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