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

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

Восстановить пароль Регистрация
 
CyberGudvin
1 / 1 / 0
Регистрация: 27.09.2013
Сообщений: 78
18.05.2014, 00:39     При обращении к структуре из класса возникает исключение:нарушение прав доступа при записи. Почему? #1
Структура Test описана в классе ABC:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class ABC{
struct Test {
    int get_i() { return i; }
    void put_i(int j) { i = j;}
    private:
    int i;
        };
public:
        Test* s;
    void SetP(){
        s->put_i(10);
    }
 
};
 
int _tmain(int argc, _TCHAR* argv[])
{
    ABC abc;
    abc.SetP();
    
    system("pause");
    return 0;
}
Выходит ошибка во время работы программы:
Необработанное исключение по адресу 0x00AD47B9 в SecondProject.exe: 0xC0000005: нарушение прав доступа при записи по адресу 0xCCCCCCCC.

Что я делаю нетак?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.05.2014, 00:39     При обращении к структуре из класса возникает исключение:нарушение прав доступа при записи. Почему?
Посмотрите здесь:

нарушение прав доступа при записи. объясните, почему? и как избежать? C++
C++ Необработанное исключение. Нарушение прав доступа при чтении
Исключение Нарушение прав доступа при чтении C++
C++ Нарушение прав доступа при записи
Необработанное исключение: нарушение прав доступа при записи C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
schdub
 Аватар для schdub
2902 / 1246 / 222
Регистрация: 19.01.2009
Сообщений: 3,214
Завершенные тесты: 1
18.05.2014, 01:15     При обращении к структуре из класса возникает исключение:нарушение прав доступа при записи. Почему? #2
CyberGudvin, s не проинициализирована (строка 9), а вы разименовываете данный указатель.
CyberGudvin
1 / 1 / 0
Регистрация: 27.09.2013
Сообщений: 78
18.05.2014, 01:32  [ТС]     При обращении к структуре из класса возникает исключение:нарушение прав доступа при записи. Почему? #3
Не понимаю что вы имеете ввиду. Напишите пожалуйста как надо в коде.
zss
Модератор
Эксперт С++
 Аватар для zss
5943 / 5548 / 1783
Регистрация: 18.12.2011
Сообщений: 14,167
Завершенные тесты: 1
18.05.2014, 09:33     При обращении к структуре из класса возникает исключение:нарушение прав доступа при записи. Почему? #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
struct Test 
{
    int get_i() { return i; }
    void put_i(int j) { i = j;}
private:
    int i;
};
class ABC
{
        Test* s;
public:
     ABC(){s=new Test;}
     ~ABC(){delete s;}
    void SetP()
    {
        s->put_i(10);
    }
};
Yandex
Объявления
18.05.2014, 09:33     При обращении к структуре из класса возникает исключение:нарушение прав доступа при записи. Почему?
Ответ Создать тему
Опции темы

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