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

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

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

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

02.04.2013, 21:28. Просмотров 3240. Ответов 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++ Нарушение прав доступа при записи по адресу 0xCDCDCDCD
Вызвано исключение по адресу 0x013C1891 в Jacobi.exe: 0xC0000005: нарушение прав доступа при чтении по адресу C++
C++ Необработанное исключение по адресу 0x00ED4891 в strings.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0xCCCCCCCC
C++ Необработанное исключение по адресу 0x00105FD7 в Динамические структуры: 0xC0000005: нарушение прав доступа при чтении по адресу 0xCDCDCE09
C++ Нарушение прав доступа при чтении по адресу
Нарушение прав доступа при чтении по адресу C++
C++ Нарушение прав доступа при чтении по адресу
C++ Нарушение прав доступа при чтении по адресу
Нарушение прав доступа при чтении по адресу C++
Нарушение прав доступа при чтении по адресу C++
Нарушение прав доступа при чтении по адресу C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
12980 / 7292 / 812
Регистрация: 27.09.2012
Сообщений: 18,007
Записей в блоге: 3
Завершенные тесты: 1
02.04.2013, 21:38     Нарушение прав доступа при чтении по адресу 0xCDCDCDCD #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  [ТС]     Нарушение прав доступа при чтении по адресу 0xCDCDCDCD #3
спс, щас найду=)

Добавлено через 1 минуту
ахаха блин=)ахахаха
Lomin
46 / 46 / 5
Регистрация: 20.04.2013
Сообщений: 126
23.06.2013, 14:51     Нарушение прав доступа при чтении по адресу 0xCDCDCDCD #4
Ответ: из 106 строки return T; поместить между 108 и 109 строками
Yandex
Объявления
23.06.2013, 14:51     Нарушение прав доступа при чтении по адресу 0xCDCDCDCD
Ответ Создать тему
Опции темы

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