0 / 0 / 1
Регистрация: 03.04.2015
Сообщений: 18
1

Нарушение прав доступа

08.09.2015, 18:52. Показов 884. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
// ConsoleApplication1.cpp: определяет точку входа для консольного приложения.
//get - seletor, set - modificator, show - вывод
 
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
#include <clocale>
#include <string>
using namespace std;
 
const int n = 1;
 
class ProjetFind{
    int year;
    string scinceDirector;
    int diametrAntenna;
    int workFrequency;
    public:
        void set(int a, string b, int c, int d);
        void show();
        string getName();
};
void ProjetFind::set(int a, string b, int c, int d){
    year = a;
    scinceDirector = b;
    //strcpy(scinceDirector, b);
    diametrAntenna = c;
    workFrequency = d;
}
void ProjetFind::show(){
    printf("%3d %15s %4d %4d \r\n", year, scinceDirector, diametrAntenna, workFrequency);
}
 
string ProjetFind::getName(){
    return scinceDirector;
}
int main(){
    setlocale(LC_ALL, "Russian");
    int year;
    int diametr;
    int freq;
    string name;
    ProjetFind *prj = new ProjetFind[n];
    cout << "Введите данные" << endl;
    for (int i = 0; i < n; i++){
        cout << "Год [" << i << "] = ";
        cin >> year;
        cout << "Научный руководитель [" << i << "] = ";
        cin >> name;
        cout << "Диаметр [" << i << "] = ";
        cin >> diametr;
        cout << "Частота [" << i << "]  = ";
        cin >> freq;
        prj[i].set(year, name, diametr, freq);
    }
    cout << "Имя обьекта 1 = " << prj[1].getName() << endl;
    cout << "Год Имя  Диаметр  Рабочая частота" << endl;
    for (int i = 0; i < n; i++){
        prj[i].show();
    }
    cin >> name;
    return 0;
}
Необработанное исключение по адресу 0x599633BE (msvcr120d.dll) в ConsoleApplication1.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0xABABABAB.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.09.2015, 18:52
Ответы с готовыми решениями:

Нарушение прав доступа
Выдает вот это Необработанное исключение в &quot;0x000d1e05&quot; в &quot;зпр3.exe&quot;: 0xC0000005: Нарушение прав...

Указатель (нарушение прав доступа)
После того как заменяет символ выдает ошибку &quot; нарушение прав доступа&quot; (когда увеличиваю...

Ошибка: Нарушение прав доступа
Здравствуйте, пишу программу для минимизации канонических выражений (сумм минтермов). Проблема...

Нарушение прав доступа к записи
#include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;string.h&gt; #include &lt;iomanip&gt; #include...

12
7529 / 6394 / 2914
Регистрация: 14.04.2014
Сообщений: 27,855
08.09.2015, 19:12 2
C++
1
printf("%3d %15s %4d %4d \r\n", year, scinceDirector.c_str(), diametrAntenna, workFrequency);
И память освободить в конце.
0
0 / 0 / 1
Регистрация: 03.04.2015
Сообщений: 18
08.09.2015, 19:21  [ТС] 3
как освободить?
и как исправить ошибку?
после введения данных для первого обьекта, краш(

Добавлено через 3 минуты
delete обьекты?
0
Эксперт С++
4982 / 3089 / 456
Регистрация: 10.11.2010
Сообщений: 11,165
Записей в блоге: 10
08.09.2015, 19:22 4
Цитата Сообщение от unitod Посмотреть сообщение
и как исправить ошибку?
тут
0
0 / 0 / 1
Регистрация: 03.04.2015
Сообщений: 18
08.09.2015, 19:23  [ТС] 5
castaway, переходит на мой пост *__*
я понимаю, что что-то записываю в память, которую не выделил, но где??(
0
Эксперт С++
4982 / 3089 / 456
Регистрация: 10.11.2010
Сообщений: 11,165
Записей в блоге: 10
08.09.2015, 19:26 6
Цитата Сообщение от unitod Посмотреть сообщение
castaway, переходит на мой пост *__*
Нет. Переходит на пост nmcf.
Ты чего такой невнимательный?
0
584 / 487 / 371
Регистрация: 05.11.2013
Сообщений: 1,263
Записей в блоге: 6
08.09.2015, 19:29 7
n=1
потом выводишь
prj[1]
которого нет
0
0 / 0 / 1
Регистрация: 03.04.2015
Сообщений: 18
08.09.2015, 19:34  [ТС] 8
упс, n менял для тестов на единицу (были и другие недочёты), извиняюсь, это исправлено.
Ошибка следующая, вместо слова "Антон" выводит в конечном итоге "?-вR-"

Добавлено через 1 минуту
castaway, Извиняюсь.
Та я просто не частый гость тут, и, завтыкал что-то в общем.
0
Эксперт С++
4982 / 3089 / 456
Регистрация: 10.11.2010
Сообщений: 11,165
Записей в блоге: 10
08.09.2015, 19:46 9
Если исправил ошибку - покажи исправленный код.
0
0 / 0 / 1
Регистрация: 03.04.2015
Сообщений: 18
08.09.2015, 19:56  [ТС] 10
Вот, делаю форматирование, если ввожу в строку кирилицу, потом получаю крякозябры(
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
// ConsoleApplication1.cpp: определяет точку входа для консольного приложения.
//get - seletor, set - modificator, show - вывод
 
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
#include <clocale>
#include <string>
#include <iomanip>
using namespace std;
 
const int n = 3;
 
class ProjetFind{
    int year;
    string scinceDirector;
    int diametrAntenna;
    int workFrequency;
    public:
        void set(int a, string b, int c, int d);
        void show();
        string getName();
};
void ProjetFind::set(int a, string b, int c, int d){
    year = a;
    scinceDirector = b;
    //strcpy(scinceDirector, b);
    diametrAntenna = c;
    workFrequency = d;
}
void ProjetFind::show(){
    cout << right << year << setw(4) << "|";
    cout << scinceDirector << setw(10) << "|";
    cout << diametrAntenna << setw(6) << "|";
    cout << workFrequency << setw(12) << "|";
    cout << endl;
}
 
string ProjetFind::getName(){
    return scinceDirector;
}
int main(){
    setlocale(LC_ALL, "Russian");
    int year;
    int diametr;
    int freq;
    string name;
    ProjetFind *prj = new ProjetFind[n];
    cout << "Введите данные" << endl;
    for (int i = 0; i < n; i++){
        cout << "Год [" << i << "] = ";
        cin >> year;
        cout << "Научный руководитель [" << i << "] = ";
        cin >> name;
        cout << "Диаметр [" << i << "] = ";
        cin >> diametr;
        cout << "Частота [" << i << "]  = ";
        cin >> freq;
        prj[i].set(year, name, diametr, freq);
    }
    cout << "Имя обьекта 1 = " << prj[1].getName() << endl;
    cout << right << "Год" << setw(5) << "Имя" << setw(16) << "Диаметр" << setw(13) << " Рабочая частота" << endl;
    for (int i = 0; i < n; i++){
        prj[i].show();
    }
    cin >> name;
    return 0;
}
0
Эксперт С++
4982 / 3089 / 456
Регистрация: 10.11.2010
Сообщений: 11,165
Записей в блоге: 10
08.09.2015, 20:26 11
Добавь в начало:
C++
1
2
    SetConsoleCP( 1251 );
    SetConsoleOutputCP( 1251 );
0
0 / 0 / 1
Регистрация: 03.04.2015
Сообщений: 18
08.09.2015, 23:21  [ТС] 12
castaway, и #include <windows.h> ещё
0
Эксперт С++
4982 / 3089 / 456
Регистрация: 10.11.2010
Сообщений: 11,165
Записей в блоге: 10
08.09.2015, 23:28 13
unitod, я плохо знаком с Visual Studio, и мне казалось что он подключается в stdafx.h.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.09.2015, 23:28
Помогаю со студенческими работами здесь

Нарушение прав доступа при чтении
#include &lt;iostream&gt; using namespace std; class programm { public: int *mass1 = new int,...

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

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

Нарушение прав доступа при записи
Выводит правильный результат, но при закрытии показывает ошибку: &quot;Вызвано исключение по адресу...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru