17 / 17 / 3
Регистрация: 28.10.2012
Сообщений: 201
1

Динамический трёхмерный массив (создать)

06.12.2012, 14:55. Показов 8822. Ответов 12

Помогите создать трёхмерный динамический массив.
C++
1
2
3
4
5
int size=10;
    int ***Field;
    Field=new int**[size];
    for(int i=0;i<size;i++)     Field[i]=new int*[size];
    for(int i=0;i<3;i++)        Field[i]=new int[3];
Ошибка:
error C2440: =: невозможно преобразовать "int *" в "int **"
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.12.2012, 14:55
Ответы с готовыми решениями:

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

Динамический трёхмерный массив
Товарищи, помогите найти ошибку. Создаю 3х мерный динамический массив: int z; cout&lt;&lt;&quot;Input...

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

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

12
Don't worry, be happy
17781 / 10545 / 2035
Регистрация: 27.09.2012
Сообщений: 26,514
Записей в блоге: 1
06.12.2012, 14:58 2
C++
1
Field[i]
это двойной указатель.
Вам нужно что-то вроде
C++
1
Field[i][j]
0
114 / 114 / 13
Регистрация: 29.04.2010
Сообщений: 240
06.12.2012, 15:01 3
Если я правильно понял, вам нужно что-то вроде такого:
C++
1
2
3
4
5
6
7
8
9
10
int size=10;
int ***Field = new int** [size];
for (int i = 0; i < size; i++)   
{
    Field[i] = new int* [size];
    for(int j = 0; j < 3; j++) 
    {
        Field[i][j] = new int [3];
    }
}
3
17 / 17 / 3
Регистрация: 28.10.2012
Сообщений: 201
06.12.2012, 15:03  [ТС] 4
Благодарю за помощь!
0
What a waste!
1607 / 1299 / 180
Регистрация: 21.04.2012
Сообщений: 2,727
06.12.2012, 15:05 5
Цитата Сообщение от PraZuBeR Посмотреть сообщение
C++
1
2
3
4
Field[i] = new int* [size];
for(int j = 0; j < 3; j++) {
   Field[i][j] = new int [3];
}
Думаю скорее j < size в условии.
0
114 / 114 / 13
Регистрация: 29.04.2010
Сообщений: 240
06.12.2012, 15:06 6
gray_fox, спасибо, неуглядел.
0
4202 / 1794 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
06.12.2012, 15:17 7
Цитата Сообщение от FireProoF Посмотреть сообщение
Field[i]=new int[3];
Ну правильно. new int[3] возвращает простой указатель на int, а Field - тройной указатель на int. Ты используешь индекс, а указатель эквивалентен массиву? Эйис. 1 индекс, значит размерность элемента меньше, чем размерность массива на 1, то есть этот элемент - двойной указатель. Здесь нужны 2 индекса, а не 1. Кроме того, с учётом
Цитата Сообщение от FireProoF Посмотреть сообщение
int ***Field;
дай ка декларацию оператора [].
0
17 / 17 / 3
Регистрация: 28.10.2012
Сообщений: 201
06.12.2012, 18:33  [ТС] 8
А возможно ли присвоить значение таким образом:

C++
1
2
//до этого я объявил 3д массив
Field[1][1]=10;
Чёт не получается так.
0
What a waste!
1607 / 1299 / 180
Регистрация: 21.04.2012
Сообщений: 2,727
06.12.2012, 18:36 9
FireProoF, нет. Какого результата ожидаешь?
0
17 / 17 / 3
Регистрация: 28.10.2012
Сообщений: 201
06.12.2012, 18:37  [ТС] 10
C++
1
2
Field[1][1]=10;
cout<<Field[1][1];
10
Если нельзя так, то зачем нужны 3D массивы? Или это только с динамическими?
0
Don't worry, be happy
17781 / 10545 / 2035
Регистрация: 27.09.2012
Сообщений: 26,514
Записей в блоге: 1
06.12.2012, 18:39 11
то есть создали "трехмерный" массив, а обращаемся как к двухмерному?
C++
1
Field[1][1]
0
What a waste!
1607 / 1299 / 180
Регистрация: 21.04.2012
Сообщений: 2,727
06.12.2012, 18:40 12
FireProoF, так ведь Field[1][1] - это указатель.
0
Don't worry, be happy
17781 / 10545 / 2035
Регистрация: 27.09.2012
Сообщений: 26,514
Записей в блоге: 1
06.12.2012, 18:41 13
у трехмерного массива три измерения, а значит и индекса тоже три
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.12.2012, 18:41
Помогаю со студенческими работами здесь

Как создать трёхмерный массив?
Как вообще вводится трехмерный массив, если надо, чтобы значения задавались с клавиатуры, т.е. не...

Создать динамический класс Book, содержащий динамический массив Authors
Мне нужно написать программу,а я не знаю как ее написать. Знаю, тут люди за кого-то не делают,...

Создать динамический массив (Если чётных чисел больше, то массив должен быть укорочен на 2 элемента)
Создать динамический массив из 8 случайных целых чисел из отрезка и вывести его на экран . Если...

Массив и память. Как создать динамический массив?
не могу исправить ошибки. И нужен динамический массив я что-то попробовала для его создания но...


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

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

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