XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Общение> Трактир
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Закрытая тема
 
inoto
я буду крутым!
offline
Опыт: 6,891
Активность:
Выделение памяти для треугольного динамического двухмерного массива [С++]
собственно сабж...
например массив 3х3
до меня доходит только алгоритм для такого:
0 0 0
0 0
0
но как для такого сделать:
0
0 0
0 0 0
Старый 30.09.2011, 13:05
Hanabishi
COOL STATUS
offline
Опыт: отключен
Это же школьная задачка - перебор элементов матрицы слева от главной диагонали. Т.е. циклом выделяешь те элементы, только когда x<=y.
Старый 30.09.2011, 13:31
inoto
я буду крутым!
offline
Опыт: 6,891
Активность:
да, но мне непонятно как быть с динамическим массивом, тобишь массивом указателей)
matrix = new int *[size];
for (int i = 0; i < size; i++)
   for (int j = 0; j <= i; j++)
      matrix[i] = new int [size];
Старый 30.09.2011, 13:36
ShadoW DaemoN

offline
Опыт: 37,078
Активность:
Как я понял из первого сообщения, нужно, чтобы размерность каждого следующего подмассива была больше предыдущего на 1. В твоём варианте кода память выделяется для каждого подмассива по нескольку раз.
int size = 3;
int *matrix = new int [size];

for (int i = 0; i < size; i++)
  matrix[i] = new int [i+1];
Как-то так. В итоге имеем:
matrix[0] - размерность 1
matrix[1] - размерность 2
matrix[2] - размерность 3
Для перевернутого массива пишется аналогично:
int size = 3;
int *matrix = new int [size];

for (int i = 0; i < size; i++)
  matrix[i] = new int [size-i];
Старый 30.09.2011, 13:59
inoto
я буду крутым!
offline
Опыт: 6,891
Активность:
ShadoW_DaemoN, благодарю это то что нужно :)
просто я ещё оказываеца плохо воображаю как устроена память...
Старый 30.09.2011, 14:08
Закрытая тема

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 08:00.