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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 63, средняя оценка - 4.60
delias
4 / 4 / 0
Регистрация: 16.07.2009
Сообщений: 87
#1

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

01.10.2009, 16:01. Просмотров 8483. Ответов 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.

Посоветуйте, как выйти из ситуации.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.10.2009, 16:01
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Динамический трёхмерный массив (C++):

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

Трёхмерный динамический массив - C++
Учусь делать многомерные динамические массивы. Написал прогу int _tmain(int argc, _TCHAR* argv) { int M, N, L, i, j, k, b = 9, a...

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

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

Трёхмерный массив в Функцию - C++
Трёхмерный массив в Функцию нужно засунуть и изменять значение переменой которую передали в неё как реализовать ?! #include &lt;iostream&gt;...

Можно ли в классе создавать массив переменной длинны. Например динамический массив? - C++
Динамические массивы привлекают больше. :)

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
M128K145
Эксперт С++
8286 / 3505 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
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];
                }
        }
delias
4 / 4 / 0
Регистрация: 16.07.2009
Сообщений: 87
01.10.2009, 16:16  [ТС] #3
в таком случае 1 фэйл
error C2440: '=' : cannot convert from 'int **' to 'int *'
M128K145
Эксперт С++
8286 / 3505 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
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];
найди ошибку
delias
4 / 4 / 0
Регистрация: 16.07.2009
Сообщений: 87
01.10.2009, 19:21  [ТС] #5
аяяй, спасибо большое.
действительно, очень часто я бываю очень невнимателен.
надо книжку что-ли какую прочитать по этому поводу
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.10.2009, 19:21
Привет! Вот еще темы с ответами:

динамический массив (Целое число разложить на массив простых множителей) - C++
Доброго времени суток всем. Целое число необходимо разложить на массив простых множителей. Столкнулся с проблемой, мне нужно, чтобы...

Написать функцию принимающую массив и возвращающую указатель на динамический массив - C++
Написать функцию принимающую массив и возвращающую указатель на динамический массив содержащий первые n нaибольших чисел. Как сделать...

Заполнить динамический массив из файла и записать массив обратно в файл - C++
Подскажите пожалуйста функцию которая будет заполнять Динамический массив из файла и обратную которая этот массив запишет в файл=)

Массив: передать динамический массив в функцию и записать в каждый элемент строку из файла - C++
задача: передать динамический массив в функцию, и записать в каждый элемент строку из файла. количество строк известно вот что у меня...


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

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

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