Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.06.2010, 18:42   #1
Bernarditto
Пользователь
 
Регистрация: 15.06.2010
Сообщений: 11
По умолчанию Задание размерности 2мерного массива

Здравствуйте!
В процессе решения некой задачи требуется:
1) с клавиатуры задать размерность двумерного массива
2) осуществить уменьшение размерности при некоторых условиях

Скажите каким образом это можно осуществить?
Bernarditto вне форума Ответить с цитированием
Старый 17.06.2010, 20:00   #2
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Код:
int N, M;
int** Matrix;
Matrix = new int*[N];
for (int i = 0; i < N; i++)
   Matrix[i] = new int[M];
Изменение (в частности, уменьшение) размеров массива - это создание нового массива другого размера, копирование в него содержимого старого массива и удаление старого. Для одномерного это будет так:
Код:
void ResizeArr(int * arr, OldN, NewN)
 {
 int* brr = new int[NewN];
 for (int i = 0; i < OldN && i < NewN; i++)
  brr[i] = arr[i];
 if (OldN < NewN)
  for (int i = OldN; i < NewN; i++)
   brr[i] = 0;
 delete[] arr;
 arr = brr;
 }
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 18.06.2010, 17:04   #3
Bernarditto
Пользователь
 
Регистрация: 15.06.2010
Сообщений: 11
По умолчанию

Спасибо большое. Если я правильно понял, во 2 строке объявляется указатель, который в 3 строке указывает на одномерный массив указателей в динамической памяти, а каждый из них является указателем на отдельный одномерный массив в динамической памяти?Т.е. N - количество столбцов, каждый из которых - отдельный динамический массив данных, а М - количество элементов в этом массиве.
В строке 3 второго кода создается аналогичный МАТРИКС массив указателей в динамической памяти, в него по идее переписывается массив МАТРИКС в 4 и 5 строке.
Правильно ли я понимаю? Заранее большое спасибо
Bernarditto вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задание массива Alex Cones Общие вопросы Delphi 11 10.05.2010 11:15
заполнение 2мерного массива по закону Seran4ek Общие вопросы Delphi 0 06.01.2010 15:37
Задание массива с помощю функции Junk1E Общие вопросы C/C++ 8 11.12.2009 17:00
Конструктор для изменения размерности массива and277 Общие вопросы C/C++ 2 10.08.2009 20:47
увеличение размерности массива Лучик_света Общие вопросы .NET 3 25.10.2008 04:36