Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
serj
Зарегистрирован: 09.01.2002 Сообщения: 3 Откуда: Кишинев
|
Добавлено: Сб Ноя 03 2001 02:11 Заголовок сообщения: Динамическое размещение в памяти многомерного массива в С++ |
|
|
В соответствии с Helpом, да и с другими источниками (Архангельский) с помощью new можно явно размещать в памяти многомерные массивы: "mat_ptr = new int[3][10][12];// OK - Н" "int *mat_ptr = new int[3][10][12];// OK - А". Однако, mat_ptr не может быть указателем на int! Если кто знает, объясните пожалуйста. Заранее благодарен! |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Overdrive
Зарегистрирован: 24.10.2001 Сообщения: 16 Откуда: Самара
|
Добавлено: Сб Ноя 03 2001 08:33 Заголовок сообщения: Re: Динамическое размещение в памяти многомерного массива в С++ |
|
|
Я сейчас нахожусь в Интернет-центре и проверить не могу, но насколько я помню, такая конструкция (для двухмерных массивов):
int **iPtr = new int*[n]; for (int i=0; i |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Overdrive
Зарегистрирован: 24.10.2001 Сообщения: 16 Откуда: Самара
|
Добавлено: Сб Ноя 03 2001 08:39 Заголовок сообщения: Re: Динамическое размещение в памяти многомерного массива в С++ |
|
|
int **iPtr = new int*[n]; for (int i=0; i |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Overdrive
Зарегистрирован: 24.10.2001 Сообщения: 16 Откуда: Самара
|
Добавлено: Сб Ноя 03 2001 08:44 Заголовок сообщения: Re: Динамическое размещение в памяти многомерного массива в С++ |
|
|
Похоже, символ "меньше" кому-то не нравится... Ладно, буду писать словами. Итак:
int **iPtr = new int*[n]; for(int i=0; i меньше n; i++) iPtr[i] = new int[m];
Для вашего трехмерного массива нужен соответственно тройной указатель, а не двойной. Попробуйте еще такое:
int ***iPtr = new int[k][l][m];
Но это, по-моему, вряд ли сработает. |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
serj
Зарегистрирован: 09.01.2002 Сообщения: 3 Откуда: Кишинев
|
Добавлено: Сб Ноя 03 2001 12:52 Заголовок сообщения: Re: Динамическое размещение в памяти многомерного массива в С++ |
|
|
Спасибо за ответ! int ***iPtr = new int[k][l][m]; действительно не сработает, я смог сделать через массивы указателей ... Но непонятны сведения в "авторитетных" источниках... ![Smile](images/smiles/icon_smile.gif) Еще раз благодарю! |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
werya Гость
|
Добавлено: Вт Ноя 06 2001 15:26 Заголовок сообщения: Re: Динамическое размещение в памяти многомерного массива в С++ |
|
|
одно из двух если заранее известны размерности масива то тогда например код выглядит int (*x)[10][10] = new int[10][10][10]; (для 10 x 10 x 10) иначе - как было сказано выше - масив указателей на масив указателей на int |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Aram Ghoukassian Гость
|
Добавлено: Вс Ноя 11 2001 18:47 Заголовок сообщения: Re: Динамическое размещение в памяти многомерного массива в С++ |
|
|
Я не знаю правильно ли я понял вопрос. Хочешь динамически создать трехмерный масив целых? Если да то...
int i,j; int k=5,l=5,m=5; int*** pppArray;
pppArray = new int**[k]; if(!pppArray)exit(1);
for(i=0;i |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
|