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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.65
FireProoF
17 / 17 / 1
Регистрация: 28.10.2012
Сообщений: 193
#1

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

06.12.2012, 14:55. Просмотров 2705. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.12.2012, 14:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Динамический трёхмерный массив (создать) (C++):

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

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

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

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

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

Массив и память. Как создать динамический массив? - C++
не могу исправить ошибки. И нужен динамический массив я что-то попробовала для его создания но ничего не вышло #include &quot;stdafx.h&quot; ...

12
Croessmah
Эксперт CЭксперт С++
13420 / 7574 / 855
Регистрация: 27.09.2012
Сообщений: 18,649
Записей в блоге: 3
Завершенные тесты: 1
06.12.2012, 14:58 #2
C++
1
Field[i]
это двойной указатель.
Вам нужно что-то вроде
C++
1
Field[i][j]
0
prazuber
110 / 110 / 3
Регистрация: 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];
    }
}
1
FireProoF
17 / 17 / 1
Регистрация: 28.10.2012
Сообщений: 193
06.12.2012, 15:03  [ТС] #4
Благодарю за помощь!
0
gray_fox
What a waste!
1521 / 1226 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 3
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
prazuber
110 / 110 / 3
Регистрация: 29.04.2010
Сообщений: 240
06.12.2012, 15:06 #6
gray_fox, спасибо, неуглядел.
0
taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
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
FireProoF
17 / 17 / 1
Регистрация: 28.10.2012
Сообщений: 193
06.12.2012, 18:33  [ТС] #8
А возможно ли присвоить значение таким образом:

C++
1
2
//до этого я объявил 3д массив
Field[1][1]=10;
Чёт не получается так.
0
gray_fox
What a waste!
1521 / 1226 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 3
06.12.2012, 18:36 #9
FireProoF, нет. Какого результата ожидаешь?
0
FireProoF
17 / 17 / 1
Регистрация: 28.10.2012
Сообщений: 193
06.12.2012, 18:37  [ТС] #10
C++
1
2
Field[1][1]=10;
cout<<Field[1][1];
10
Если нельзя так, то зачем нужны 3D массивы? Или это только с динамическими?
0
Croessmah
Эксперт CЭксперт С++
13420 / 7574 / 855
Регистрация: 27.09.2012
Сообщений: 18,649
Записей в блоге: 3
Завершенные тесты: 1
06.12.2012, 18:39 #11
то есть создали "трехмерный" массив, а обращаемся как к двухмерному?
C++
1
Field[1][1]
0
gray_fox
What a waste!
1521 / 1226 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 3
06.12.2012, 18:40 #12
FireProoF, так ведь Field[1][1] - это указатель.
0
Croessmah
Эксперт CЭксперт С++
13420 / 7574 / 855
Регистрация: 27.09.2012
Сообщений: 18,649
Записей в блоге: 3
Завершенные тесты: 1
06.12.2012, 18:41 #13
у трехмерного массива три измерения, а значит и индекса тоже три
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.12.2012, 18:41
Привет! Вот еще темы с ответами:

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

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

Создать класс-динамический массив - C++
Помогите, пожалуйста!! не могу решить задачу, очень важно! Условие:создайте класс – динамический массив. В качестве элементов массива...

Создать динамический массив указателей - C++
Создать динамический массив указателей для сохранения двумерного массива А в динамической памяти. Составить программу для подсчета...


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

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

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