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

Динамический трёхмерный массив

01.10.2009, 16:01. Показов 20458. Ответов 4
Метки нет (Все метки)

Товарищи, помогите найти ошибку.

Создаю 3х мерный динамический массив:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int z;
    cout<<"Input y\n";
    cin>>y;
    cout<<"\nInput x\n";
    cin>>x;
    cout<<"\nInput z\n";
    cin>>z;
 
    
    int ***p=new int **[y];
    for (int i=0;i<y;i++)
    {
        p[y]=new int *[x];
    }
    for (int i=0;i<y;i++)
    {
        for (int j=0;j<x;j++)
        {
            p[i][j]=new int [z];
        }
    }
Но на шаге p[i][j]=new int [z]; стопорится, и выдаёт ошибку:
Unhandled exception at 0x00414292 in 09_09_27.exe: 0xC0000005: Access violation writing location 0xcdcdcdcd.
Хотя такое только при запуске, при билде этого не выявляет: Build: 0 succeeded, 0 failed.

Посоветуйте, как выйти из ситуации.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.10.2009, 16:01
Ответы с готовыми решениями:

Трёхмерный динамический массив
Учусь делать многомерные динамические массивы. Написал прогу int _tmain(int argc, _TCHAR* argv)...

Трехмерный динамический массив
Помогите создать трехмерный динамический массив, в c++ не сильно шарю, а в гугле нужной информации...

Трехмерный динамический массив
Здравствуйте друзья, я переписываю код с Delphi на C++. В Delphi был задан динамический трехмерный...

Трёхмерный динамический массив
Доброго времени суток! Не могу создать трёхмерный динамический массив! Точнее создаю один раз...

4
Эксперт JavaЭксперт С++
8376 / 3598 / 419
Регистрация: 03.07.2009
Сообщений: 10,708
01.10.2009, 16:05 2
может имеет смысл написать так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
       int ***p=new int **[y];
        for (int i=0;i<y;i++)
        {
                *p[y]=new int *[x];
        }
        for (int i=0;i<y;i++)
        {
                for (int j=0;j<x;j++)
                {
                        p[i][j]=new int [z];
                }
        }
0
5 / 5 / 0
Регистрация: 16.07.2009
Сообщений: 87
01.10.2009, 16:16  [ТС] 3
в таком случае 1 фэйл
error C2440: '=' : cannot convert from 'int **' to 'int *'
0
Эксперт JavaЭксперт С++
8376 / 3598 / 419
Регистрация: 03.07.2009
Сообщений: 10,708
01.10.2009, 16:23 4
вот без ошибок.
C++
1
2
3
4
5
6
7
    int ***p=new int **[y];
    for (int i=0;i<y;i++)
    {
        p[i]=new int *[x];
        for (int j=0;j<x;j++)
            p[i][j]=new int [z];
    }
твоя ошибка в невнимательности
for (int i=0;i<y;i++)
p[y]=new int *[x];
найди ошибку
2
5 / 5 / 0
Регистрация: 16.07.2009
Сообщений: 87
01.10.2009, 19:21  [ТС] 5
аяяй, спасибо большое.
действительно, очень часто я бываю очень невнимателен.
надо книжку что-ли какую прочитать по этому поводу
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.10.2009, 19:21
Помогаю со студенческими работами здесь

Создать трёхмерный динамический массив
Пытаюсь создать трёхмерный динамический массив. Но создаётся не любого типа. Вроде 0 5 1. или 2 2 2...

Динамический трёхмерный массив (создать)
Помогите создать трёхмерный динамический массив. int size=10; int ***Field; Field=new...

Как вывести трехмерный динамический массив
народ можете подсказать) написал код, где заполняется трехмерный массив так как мне необходимо, но...

Заполнить и вывести трехмерный динамический массив
Создать трехмерный динамический массив. Заполнить его случайными числами и вывести результат на...


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

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

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