RUS Уроки по программированию на языке С (Примеры на многомерные динамические массивы.)
Примеры на многомерные динамические массивы.
Пример 1. Организация двумерного "треугольного" динамического массива.
Сначала создаётся одномерный массив указателей, а затем каждому элементу
этого массива присваивается адрес одномерного массива. При этом размер
(количество элементов) каждого нового массива на единицу меньше размера
предыдущего. Включённая в квадратные скобки переменная, которая является
операндом операции new, позволяет легко сделать это.
#include <iostream>
using namespace std;
void main()
{
int i, j;
// Переменные для описания характеристик массивов.
int m1 = 5, wm = 5;
int **pXArr = new int*[m1];
for (i = 0; i < m1; i++, wm--)
pXArr[i] = new int[m1];
//Заполнение массива нулями и показ его на экран
for (i = m1 - 1; i >= 0; i--, wm++) {
for (j = 0; j < wm; j++){
pXArr[i][j]=0;
cout<<pXArr[i][j]<<"\t";
}
cout<<"\n\n";
}
//Последовательное уничтожение двумерного массива треугольной конфигурации…
for (i = 0; i < m1; i++)
delete[]pXArr[i];
delete[]pXArr;
}
|
Пример 2. Организация трехмерного динамического массива.
Создание и уничтожение трёхмерного массива требует дополнительной итерации.
Однако здесь также нет ничего принципиально нового.
#include <iostream>
using namespace std;
void main()
{
int i, j;
// Переменные для описания характеристик массивов.
int m1 = 5, m2 = 5, m3 = 2;
// указатель на указатель на указатель :)
int ***ppArr;
// Создание массива
ppArr = new int**[m1];
for (i = 0; i <m1; i++)
ppArr[i] = new int*[m2];
for (i = 0; i < m1; i++)
for (j = 0; j < m2; j++)
ppArr[i][j] = new int[m3];
ppArr[1][2][3] = 750;
cout << ppArr[1][2][3] << "\n";
// Удаление в последовательности, обратной созданию
for (i = 0; i < m1; i++)
for (j = 0; j < m2; j++)
delete[]ppArr[i][j];
for (i = 0; i < m1; i++)
delete[]ppArr[i];
delete[] ppArr;
}
|
|
Категория: C | Добавил: DEN-SHP (05.11.2012)
|
Просмотров: 813
| Рейтинг: 0.0/0 |
Добавлять комментарии могут только зарегистрированные пользователи.
[
Регистрация |
Вход ]