Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 31.05.2016
Сообщений: 1
1

Ошибка: "Необработанное исключение: 0xC0000005: Нарушение прав доступа при записи"

24.12.2016, 13:30. Показов 1391. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
мной написана программа
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
#include <iostream>
#include <conio.h>
#include "mpi.h"
#include <ctime>
#include <time.h>
#include <math.h>
#include <fstream>
 
using namespace std;
 
#define LID 7077
#define _CRT_SECURE_NO_WARNINGS
 
int main(int argc, char* argv[])
{
    int myrank, ranksize;
    double time;
        
    MPI_Init(&argc, &argv);
    MPI_Comm_rank(MPI_COMM_WORLD, &myrank);
    MPI_Comm_size(MPI_COMM_WORLD, &ranksize);
    MPI_Status Stat;
            
    if (myrank == 0) {
        int n = 0;
        cout << "Vvedite n:";
        cin >> n;
        double **mat = new double*[n];
        double **ans = new double*[n];
 
        cout << endl << "Matrix:" << endl;
        for(int i=0;i<n;i++)
        {
            mat[i] = new double[n];
            for(int j=0;j<n;j++)
            {
                mat[i][j] = rand() % 100;
                if(i==j) {
                    if(mat[i][j] == 0) {
                        mat[i][j] = 1;
                    }
                }
                cout << mat[i][j] << " ";
            }
            cout << endl;
        }
        double *c = new double[n];
        double *res = new double[n];
        
        time = MPI_Wtime();
 
        for (int i = 1; i < ranksize; i++)
        {
            MPI_Send(&n, 1, MPI_INT, i, LID*i + 47, MPI_COMM_WORLD);
        }
 
        for (int i = 0; i<n; i++) {
            for(int j=0;j<n;j++) {
                c[j] = mat[j][i];
            }
            MPI_Send(&i, 1, MPI_INT, i % (ranksize - 1) + 1, LID*(i % (ranksize - 1) + 1) + i / (ranksize - 1), MPI_COMM_WORLD);
            MPI_Send(c, n, MPI_DOUBLE, i % (ranksize - 1) + 1, LID*(i % (ranksize - 1) + 1) + i / (ranksize - 1), MPI_COMM_WORLD);
 
        }
        for (int i = 0; i<n; i++) {         
            MPI_Recv(ans[i], n, MPI_DOUBLE, i % (ranksize - 1) + 1, LID*(i % (ranksize - 1) + 1) + i / (ranksize - 1), MPI_COMM_WORLD, &Stat);
            for(int j=0;j<n;j++) {
                cout << res[j] << " ";
                ans[j][i] = res[j];
            }
        }
        cout << endl << "Obratnaja matrica:" << endl;
        for (int i = 0; i < n; i++)
        {
            for(int j=0;j<n;j++) {
                cout << ans[i][j] << " ";
            }
            cout << endl;
        }
        cout << endl;
        cout << "Ranksize: " << ranksize << endl;
 
        time = MPI_Wtime() - time;
        cout << "Time: " << time;
        double **pr = new double*[n];
        cout << endl << "Proverka:" << endl;
        for (int i=0;i<n;i++) {
            double s= 0;
            for (int j=0;j<n;j++) {
                for (int k=0;k<n;k++) {
                    s += mat[i][k]*ans[k][j];
                }
                pr[i][j] = floor(s+0.5);
            }       
        }
        for (int i=0;i<n;i++) {
            for (int j=0;j<n;j++) {
                cout << pr[i][j] << " ";
            }
            cout << endl;
        }
 
    }
 
    else {
 
        int nNew = 0, iNew = 0;
        MPI_Recv(&nNew, 1, MPI_INT, 0, LID*myrank + 47, MPI_COMM_WORLD, &Stat);
        
        double *vector = new double[nNew];
        double *res = new double[nNew];
 
        for (int i = 0; i< nNew / (ranksize - 1) + (nNew % (ranksize - 1) >= myrank ? 1 : 0); i++) {
            MPI_Recv(&iNew, 1, MPI_INT, 0, LID*myrank + i, MPI_COMM_WORLD, &Stat);
            MPI_Recv(vector, nNew, MPI_DOUBLE, 0, LID*myrank + i, MPI_COMM_WORLD, &Stat);
            for(int j=0;j<nNew;j++) {
                if(j==iNew) {
                    res[j] = 1.0/vector[j];
                    cout << res[j] << " ";
                }
                else {
                    res[j] = -vector[j]/vector[iNew];
                    cout << res[j] << " ";
                }
            }
            cout << endl;
            MPI_Send(res, nNew, MPI_DOUBLE, 0, LID*myrank + i, MPI_COMM_WORLD);
        }
    }
    
    MPI_Finalize();
    system("PAUSE");
    return 0;
}
не работает в части
C++
1
2
3
4
5
MPI_Recv(res, n, MPI_DOUBLE, i % (ranksize - 1) + 1, LID*(i % (ranksize - 1) + 1) + i / (ranksize - 1), MPI_COMM_WORLD, &Stat);
            for(int j=0;j<n;j++) {
                cout << res[j] << " ";
                ans[j][i] = res[j];     //здесь не работает
            }
пишет
Необработанное исключение в "0x00d31a4d" в "obrmat.exe": 0xC0000005: Нарушение прав доступа при записи "0xcdcdcdcd".

подскажите, пожалуйста, как исправить
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.12.2016, 13:30
Ответы с готовыми решениями:

Необработанное исключение по адресу 0x7C5101C9 (ucrtbased.dll) в EXAM.exe: 0xC0000005: нарушение прав доступа при записи
Доброго времени суток. Необходимо переписать данные структуры в файл и после прочитать. Не могу...

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

Необработанное исключение в "0x77913ab3" в "x": 0xC0000005: Нарушение прав доступа при чтении "0xdddddddd"
вот код, нужно найти 3 минимальных положительных числа в массиве. При размере массива больше 950 в...

Выдает в коде Необработанное исключение 0xC0000005: нарушение прав доступа при записи как это исправить?
#include &lt;iostream&gt; #include &lt;clocale&gt; #include &lt;cstdlib&gt; #include &lt;ctime&gt; #include &lt;Windows.h&gt;...

1
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
25.12.2016, 13:39 2
Цитата Сообщение от Tavasilyok Посмотреть сообщение
C++
1
MPI_Recv(res, n, MPI_DOUBLE, i % (ranksize - 1) + 1, LID*(i % (ranksize - 1) + 1) + i / (ranksize - 1), MPI_COMM_WORLD, &Stat);
В приведенном выше коде даже строчек таких нет.
0
25.12.2016, 13:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.12.2016, 13:39
Помогаю со студенческими работами здесь

Ошибка при компиляции. Необработанное исключение по адресу 0x00216B87 в Project1.exe: 0xC0000005: нарушение прав доступа
Необработанное исключение по адресу 0x00216B87 в Project1.exe: 0xC0000005: нарушение прав доступа...

Необработанное исключение: 0xC0000005: Нарушение прав доступа при чтении
Программа складывает и вычитает матрицы произвольной размерности, читаемые ею с файла. На самом...

Необработанное исключение по адресу 0x008B94C5. 0xC0000005: нарушение прав доступа при чтении по
Здравствуйте! Функция должна искать локальные минимумы массива. То есть это элементы,которые меньше...

Необработанное исключение по адресу 0x004490F8 в ConsoleApplication1.exe: 0xC0000005: нарушение прав доступа при чтении
Я реализую дерево. Хочу добавить элемент через указание ссылки на родителя. Но непонятно почему я...

Необработанное исключение по адресу 0x00EB1F23 в ConsoleApplication49.exe: 0xC0000005: нарушение прав доступа при чтении
В функции Max выдает такую ошибку на строчке с int Z Необработанное исключение по адресу...

Необработанное исключение по адресу 0x00E730CD в ConsoleApplication18.exe: 0xC0000005: нарушение прав доступа при чтении
Задана целочисленная динамическая матрица M. Элементы этой матрицы, без остатка делящиеся на 6,...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru