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

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

Войти
Регистрация
Восстановить пароль
 
cHuVbaka
0 / 0 / 0
Регистрация: 09.11.2013
Сообщений: 122
#1

Не запускается проект: нарушение прав доступа при чтении - C++

13.04.2014, 20:38. Просмотров 311. Ответов 9
Метки нет (Все метки)

Код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#include <iostream>
using namespace std;
 
class Book
{
    char* _surname; // фамилия автора
 
    char* _name; // имя автора
 
    char* _patronymic; // отчество автора
 
    int _year; // год издательства
 
    char* _book; // название книги
 
    int _count; // количество страниц
public:
 
    Book(char* surname, char* name, char* patronymic) // конструктор класса Книга (принимает 3 параметра)
        :_count(0), _year(0)
    {
        this->SetSurname(surname);
 
        this->SetName(name);
 
        this->SetPatronymic(patronymic);
 
        cout <<"Вызов конструктора!!!"<<endl;
    }
 
    ~Book(void) // деструктор (очищает всю занятую память)
    {
        if(this->_surname != NULL)
            delete[] this->_surname;
 
        if(this->_name != NULL)
            delete[] this->_name;
 
        if(this->_patronymic != NULL)
            delete[] this->_patronymic;
 
        if(this->_book != NULL)
            delete[] this->_book;
        cout <<"Вызов деструктора!!!"<<endl;
    }
 
    void SetSurname(char* surname) // метод задает фамилию автора
    {
        if(this->_surname != NULL) // если фамилия не пустая
            delete[] this->_surname; // удаляем занятую память
 
        this->_surname = _strdup(surname); // выдиляем и копируем новое значение
    }
 
    void SetName(char* name)
    {
        if(this->_name != NULL)
            delete[] this->_name;
 
        this->_name = _strdup(name);
    }
 
    void SetPatronymic(char* patronymic)
    {
        if(this->_patronymic != NULL)
            delete[] this->_patronymic;
 
        this->_patronymic = _strdup(patronymic);
    }
 
    void SetBook(char* book)
    {
        if(this->_book != NULL)
            delete[] this->_book;
 
        this->_book = _strdup(book);
    }
 
    void SetYear(int year)
    {
        this->_year = year;
    }
 
    void SetCount(int count)
    {
        this->_count = count;
    }
 
    const char* GetSurname()const
    {
        return this->_surname;
    }
 
    const char* GetName()const
    {
        return this->_name;
    }
 
    const char* GetPatronymic()const
    {
        return this->_patronymic;
    }
 
    const char* GetPost()const
    {
        return this->_book;
    }
 
    const int GetYear()const
    {
        return this->_year;
    }
 
    const int GetCount()const
    {
        return this->_count;
    }
};
 
int main()
{
    setlocale(LC_ALL, "RUS"); // рус язык
 
    Book* book = new Book("Syrname", "Name", "Patronymic");
 
    book->SetYear(1980);
 
    book->SetCount(3000);
 
    cout << book->GetSurname() << " " << book->GetName() <<endl;
 
    return 0;
}
Ошибка
0
Миниатюры
Не запускается проект: нарушение прав доступа при чтении  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.04.2014, 20:38
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не запускается проект: нарушение прав доступа при чтении (C++):

Нарушение прав доступа при чтении - C++
Здравствуйте! На строке catalog-&gt;push_back(*record); Выдает ошибку: Первый этап обработки исключения в &quot;0x00173589&quot; в &quot;Traning2.exe&quot;:...

Нарушение прав доступа при чтении - C++
Здравствуйте. Собственно проблема вот в чем при вызове функции нахождения определителя выскакивает ошибка Необработанное исключение в...

Нарушение прав доступа при чтении - C++
// ConsoleApplication6.cpp: определяет точку входа для консольного приложения. // #include &quot;stdafx.h&quot; #include &quot;stdafx.h&quot; ...

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

Нарушение прав доступа при чтении - C++
Добрый день при выполнении программы выходит ошибка: Необработанное исключение в &quot;0x00ce4893&quot; в &quot;Diskret.exe&quot;: 0xC0000005: Нарушение прав...

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

9
cHuVbaka
0 / 0 / 0
Регистрация: 09.11.2013
Сообщений: 122
13.04.2014, 21:31  [ТС] #2
ребят, попробуйте кто-то запустить у себя
0
zss
Модератор
Эксперт С++
6536 / 6098 / 2008
Регистрация: 18.12.2011
Сообщений: 15,865
Завершенные тесты: 1
13.04.2014, 21:49 #3
Когда Вы вызываете конструктор,
то память под переменные не выделена,
но указатели не обязаны быть NULL.
Соответственно, операция delete вызовет ошибку.
0
newbie666
Заблокирован
13.04.2014, 21:55 #4
всё работает
0
Миниатюры
Не запускается проект: нарушение прав доступа при чтении  
zss
Модератор
Эксперт С++
6536 / 6098 / 2008
Регистрация: 18.12.2011
Сообщений: 15,865
Завершенные тесты: 1
13.04.2014, 22:08 #5
Цитата Сообщение от newbie666 Посмотреть сообщение
всё работает
Да, если компилятор заполняет по умолчанию указатели нулями.
0
newbie666
Заблокирован
13.04.2014, 22:15 #6
Цитата Сообщение от cHuVbaka Посмотреть сообщение
this->SetSurname(surname);
this->SetName(name);
this->SetPatronymic(patronymic);
можешь объяснить зачем ты тут пишешь this?
0
cHuVbaka
0 / 0 / 0
Регистрация: 09.11.2013
Сообщений: 122
13.04.2014, 22:47  [ТС] #7
разве компилятор может заполнить указатель?
0
newbie666
Заблокирован
13.04.2014, 23:16 #8
Цитата Сообщение от cHuVbaka Посмотреть сообщение
разве компилятор может заполнить указатель?
ты вообще о чем?
0
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
14.04.2014, 00:44 #9
Цитата Сообщение от newbie666 Посмотреть сообщение
ты вообще о чем?
О неинициализированных указателях.
Цитата Сообщение от cHuVbaka Посмотреть сообщение
разве компилятор может заполнить указатель?
От компилятора зависит. Какие-то обнуляют неинициализированные указатели, какие-то нет.
0
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
14.04.2014, 00:50 #10
...
0
Миниатюры
Не запускается проект: нарушение прав доступа при чтении   Не запускается проект: нарушение прав доступа при чтении  
14.04.2014, 00:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.04.2014, 00:50
Привет! Вот еще темы с ответами:

Нарушение прав доступа при чтении - C++
Собственно код программы: #include &quot;stdio.h&quot; #include &quot;conio.h&quot; #include &quot;math.h&quot; #include &quot;string.h&quot; #include &quot;stdafx.h&quot; ...

Нарушение прав доступа при чтении - C++
Имею функцию такого плана: void RenameOldLabels() { USES_CONVERSION; string path, pathAfterRename, pathToDelFile, pathToDelDir,...

Нарушение прав доступа при чтении по адресу - C++
Использую библиотеку SFML мне нужно подключить спрайт, но возникает такая ошибка. Кто может помочь?

Нарушение прав доступа при чтении по адресу - C++
Доброго времени суток. Делал задание из Лафоре, и заметил, что при попытке прочитать данные из файла выдаёт ошибку (скрин). Мои действия с...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

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