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

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

Восстановить пароль Регистрация
 
Tapelkam
0 / 0 / 0
Регистрация: 12.11.2012
Сообщений: 33
09.12.2012, 20:27     Нарушение прав доступа при записи #1
Скажите, пожалуйста, в чем проблема???
Задание: Составить программу, которая получает матрицу Х размером mx*nx и матрицу Y размером my*ny. Если обе матрицы квадратные и одного размера, то программа из двух исходных квадратных матриц Х и Y формирует результирующую матрицу Z путем суммирования каждого элемента каждого столбца матрицы А с произведением соответствующей строки матрицы В.

Это main.cpp
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
#include <iostream>
#include <conio.h>
#include <stdio.h>
 
int **vvod(int, int);
int **sozd(int, int, int **, int**);
using namespace std;
 
void main()
{
    setlocale (LC_ALL, "rus");
    int z = 0 , mz, nz;
    int mx, nx;
    cout<<" Введите размерность матрицы X : mx и nx соответственно ";
    cin>>mx>>nx;
    int **masX = vvod(mx, nx);
 
    int my, ny;
    cout<<"\n Введите размерность матрицы Y : my и ny соответственно ";
    cin>>my>>ny;
    int **masY = vvod(my, ny);
    
    if( (mx == my && nx==ny)&&(mx==nx && ny==my) )
    {
        mz=mx, nz=nx;
        int **masZ = sozd(mz, nz, masX, masY);
 
        for(int i=0; i<mx; ++i)
        {
            for( int j=0; j<nx; j++)
            {
                cout<<*(*(masZ+i)+j)<<"  ";
            }
        }
 
    }
    _getch();
}
Это функция
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
#include <iostream>                                                                                         
using namespace std;
 
int **sozd (int mz, int nz, int** masX, int **masY)
{
    int ** masZ = new int* [mz];
    for(int i=0; i<mz; ++i)
    {
        masX[i] = new int [nz];
    }
    
    int d = 0;
        
    for(int stb=0; stb<nz; stb++)
    {
        for(int i=0, b=0; b<mz; b++)
        {
            for(int j=0; j<mz; j++)
            {
                int u = *(*(masX+stb)+j), y = *(*(masY+j)+b);
                d = d + u*y;
            }
            *(*(masZ + stb)+ b)) = d;
            d=0;
        }
    }
 
    return masZ;
}
Есть функция ввода, вывода массива, но в них все правильно

При компиляции все хорошо, при решении вылетает:

Необработанное исключение в "0x770915de" в "Лабораторная 6.exe": 0xC0000005: Нарушение прав доступа при записи "0xcdcdcdcd".
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.12.2012, 20:27     Нарушение прав доступа при записи
Посмотрите здесь:

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 06:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru