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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.70
Vlad1994
0 / 0 / 0
Регистрация: 06.02.2013
Сообщений: 11
#1

Нарушение прав доступа при чтении по адресу 0xCDCDCDCD - C++

02.04.2013, 21:28. Просмотров 3307. Ответов 3
Метки нет (Все метки)

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
134
135
136
137
#include "stdafx.h"
#include <iostream>
#include <time.h>
 
using namespace std;
 
 
class CMatr
{
protected:
    int **V, Size;
public:
    CMatr();
    CMatr(int);
    CMatr(const CMatr &);
    ~CMatr();
    void Set();
    void Get();
    CMatr operator + (const CMatr &);
    CMatr operator - (const CMatr &);
    const CMatr &operator = (const CMatr &);
};
 
CMatr::CMatr()
{
    cout<<"OLOLOLOLO"<<endl;
}
 
CMatr::CMatr(int Size)
{
    this->Size = Size;
    V = new int *[Size];
    for (int i = 0; i < Size; i++)
    {
        *(V + i)=new int [Size];
    for (int j = 0; j< Size; j++)
        
        *((*(V + i))+j)=0;
 
    }
}
 
CMatr::CMatr(const CMatr &Vec)
{
    Size=Vec.Size;
    V = new int*[Size];
    for (int i = 0; i < Size; i++)
    {
        *(V + i)=new int [Size];
        for (int j = 0; j < Size; j++)
         *((*(V + i))+j) =  *((*(Vec.V + i))+j);
    }
}
 
CMatr::~CMatr()
{
    for ( int i = 0 ; i < Size; i ++ )
    delete[] V [i];
    delete [] V;
}
 
void CMatr::Set()
{
    for (int i = 0; i < Size; i++)
    {
        for (int j = 0; j < Size; j++)
        *((*(V + i))+j)=rand()%10 ;
    }
}
void CMatr::Get()
{
     for (int i = 0; i < Size; i++)
    {
        for (int j = 0; j < Size; j++)
        {
        cout<<"\t>"<<*(*(V+i) + j);
        }
        cout<<endl;
    }
}
 
const CMatr &CMatr::operator = (const CMatr &Right)
{
    if (&Right == this) return *this;
    delete[] V;
    V = new int*[Size = Right.Size];
    for (int i = 0; i < Size; i++)
    {
        *(V + i)=new int [Size];
        for (int j = 0; j< Size; j++)
        {
        *((*(V + i))+j) = *((*(Right.V + i))+j);
         return *this;
        }
    }
}
 
CMatr CMatr::operator + (const CMatr &Right)
{
    CMatr T(Right.Size);
    for (int i = 0; i < Right.Size; i++)
    {
        for ( int j = 0; j < Right.Size; j++)
        {
        *((*(T.V + i))+j) = *((*(V+i))+j)+*((*(Right.V + i))+j);
         return T;
        }
    }
}
 
 
int main()
{
    srand(time_t(NULL));
    setlocale (LC_ALL,"RUS");
 
    int Size;
    
    cout << "Введите ранг матрици: ";
    cin >> Size;
    CMatr A(Size), B(Size), C(Size);
    A.Set();
    B.Set();
    
    cout << "матрица А: \n";
    A.Get();
    cout << "матрица В: \n";
    B.Get();
   
    C = A + B;
   
    cout << "матрица С: \n";
    C.Get();
    
    system("pause");
    return 0;
}
метод Get фигово работает, не хочет выводить матрицу С. выдаёт ошибку нарушение прав доступа при чтении по адресу 0xCDCDCDCD. Помогите плиз=)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.04.2013, 21:28
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Нарушение прав доступа при чтении по адресу 0xCDCDCDCD (C++):

Нарушение прав доступа при записи по адресу 0xCDCDCDCD - C++
возникла такая вот ошибка: Вызвано исключение по адресу 0x0F2C398A (sfml-graphics-d-2.dll) в JustPlatformer.exe: 0xC0000005: нарушение...

Нарушение прав доступа при записи по адресу 0xCDCDCDCD - C++
#include &lt;iostream&gt; #include &lt;cstdlib&gt; using namespace std; void create(int**, int, int); void tp(int **, int, int **, int); ...

Вызвано исключение по адресу 0x013C1891 в Jacobi.exe: 0xC0000005: нарушение прав доступа при чтении по адресу - C++
#include &lt;math.h&gt; const double eps = 0.001; ///&lt; желаемая точность /// N - размерность матрицы; A - матрица коэффициентов, F -...

Необработанное исключение по адресу 0x00105FD7 в Динамические структуры: 0xC0000005: нарушение прав доступа при чтении по адресу 0xCDCDCE09 - C++
Необработанное исключение по адресу 0x00105FD7 в Динамические структуры.exe: 0xC0000005: нарушение прав доступа при чтении по адресу...

Необработанное исключение по адресу 0x00ED4891 в strings.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0xCCCCCCCC - C++
Программа толком не написан, проверял ранд и возникли проблемы. Ф-ция ранд генерирует одно и тоже число, но если убрать srand(time(0));,...

Нарушение прав доступа при чтении по адресу - C++
В приведённом ниже коде возникает ошибка времени выполнения с текстом из названия. Проблема в том, что остановка выполнения происходит...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Croessmah
Модератор
Эксперт CЭксперт С++
13134 / 7397 / 828
Регистрация: 27.09.2012
Сообщений: 18,231
Записей в блоге: 3
Завершенные тесты: 1
02.04.2013, 21:38 #2
Цитата Сообщение от Vlad1994 Посмотреть сообщение
метод Get фигово работает
Он тут не причем.
Вот Вам исправленный фрагмент кода, найдите два отличия от Вашего:
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
const CMatr &CMatr::operator = (const CMatr &Right)
{
    if (&Right == this) return *this;
    delete[] V;
    V = new int*[Size = Right.Size];
    for (int i = 0; i < Size; i++)
    {
        *(V + i)=new int [Size];
        for (int j = 0; j< Size; j++)
        {
        *((*(V + i))+j) = *((*(Right.V + i))+j);         
        }
    }
     return *this;
}
 
CMatr CMatr::operator + (const CMatr &Right)
{
    CMatr T(Right.Size);
    for (int i = 0; i < Right.Size; i++)
    {
        for ( int j = 0; j < Right.Size; j++)
        {
            *((*(T.V + i))+j) = *((*(V+i))+j)+*((*(Right.V + i))+j);
        }
    }
     return T;
}
Vlad1994
0 / 0 / 0
Регистрация: 06.02.2013
Сообщений: 11
02.04.2013, 21:45  [ТС] #3
спс, щас найду=)

Добавлено через 1 минуту
ахаха блин=)ахахаха
Lomin
46 / 46 / 5
Регистрация: 20.04.2013
Сообщений: 126
23.06.2013, 14:51 #4
Ответ: из 106 строки return T; поместить между 108 и 109 строками
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.06.2013, 14:51
Привет! Вот еще темы с ответами:

Нарушение прав доступа при чтении по адресу - C++
Здравствуйте. Вот в этом коде(двусвязный список) выбивает такую штуку: Необработанное исключение по адресу 0x0115BE7D в...

Нарушение прав доступа при чтении по адресу - C++
Здравствуйте, форумчане. Дабы не писать долго я описал свою проблему в видео https://youtu.be/oufPPGrGiek

Нарушение прав доступа при чтении по адресу - C++
Доброго времени суток! Пишу некую прогу. Так вот у меня выпадает ошибка, на скринах показана. загрузка с серверов майкрософт стоит. если...

Нарушение прав доступа при чтении по адресу - C++
#include &lt;iostream&gt; #include &lt;locale.h&gt; #include &lt;cstring&gt; #include &lt;cmath&gt; using namespace std; class String { ...


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

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

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