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

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

Войти
Регистрация
Восстановить пароль
 
Newchap
4 / 4 / 1
Регистрация: 17.09.2013
Сообщений: 179
#1

Как выделить память под динамический двумерный массив - C++

25.04.2014, 17:52. Просмотров 510. Ответов 5
Метки нет (Все метки)

Добрый день, достаточно простой вопрос, но почему-то он возник, и нагуглить ответ я не смог.
Обычно выделял память под двумерный массив следующей командой
C++
1
float **mas = new float *[M];
Однако, как я понимаю, она выделяет память под квадратную матрицу размером M, т.е. одинаковое количество строк и столбцов.
А что если мне нужна не квадратный динамический массив, а динамический массив N * M ? Как это реализовать? спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.04.2014, 17:52     Как выделить память под динамический двумерный массив
Посмотрите здесь:

Выделить память под массив в 100500 индексе. Возможно ли? C++
C++ Динамически выделить память под массив
C++ Выделить память под динамический массив указателей
C++ Выделить память под двумерный массив за один вызов функции malloc
Выделить и удалить память под 4 мерный массив C++
C++ Выделить память под массив размера 2^64 байтов
Как правильно выделить память под двумерный массив в шаблоне? C++
Двумерный динамический массив. Попытка чтения или записи в защищенную память C++
C++ Выделить память под массив неизвестной длины
C++ Выделить память под массив 1000х1000 элементов типа double
C++ Можно ли динамически выделить память под массив указателей, на объекты класса?
Динамически выделить память под массив функций C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
_Ellen_
15 / 15 / 5
Регистрация: 28.11.2013
Сообщений: 50
25.04.2014, 18:03     Как выделить память под динамический двумерный массив #2
По запросу "двумерный динамический массив" в гугле Вам сразу же покажут, как выделять под него память.

Не особо понятно, как Вы умудрились выделить этой строкой
Цитата Сообщение от Newchap Посмотреть сообщение
float **mas = new float *[M];
память для двумерного массива. Тут объявлен указатель на массив указателей размера M.

Даже для квадратной матрицы понадобился бы код типа
C++
1
2
3
int ** arr = new int * [n];
for(int i = 0; i < n; i++)
    arr[i] = new int [m];
(только n == m)
Newchap
4 / 4 / 1
Регистрация: 17.09.2013
Сообщений: 179
25.04.2014, 21:11  [ТС]     Как выделить память под динамический двумерный массив #3
_Ellen_, На мой вопросы Вы, правда, не ответили.
_Ellen_
15 / 15 / 5
Регистрация: 28.11.2013
Сообщений: 50
25.04.2014, 21:19     Как выделить память под динамический двумерный массив #4
Почему это? Последние три строки кода и есть ответ на Ваш вопрос.
Denis123456789
43 / 43 / 17
Регистрация: 02.06.2013
Сообщений: 180
25.04.2014, 21:28     Как выделить память под динамический двумерный массив #5
двумерный массив-это массив указателей на массивы
C++
1
int ** arr = new int * [n];
этой строкой выделяем память для массива указателей
C++
1
2
for(int i = 0; i < n; i++)
    arr[i] = new int [m];
а этими каждому элементу массива arr присваем адрес начала блока памяти из m элементов
Newchap
4 / 4 / 1
Регистрация: 17.09.2013
Сообщений: 179
25.04.2014, 21:50  [ТС]     Как выделить память под динамический двумерный массив #6
_Ellen_, затупил под вечер, понял теперь,спасибо)
Denis123456789, благодарю за пояснения
Yandex
Объявления
25.04.2014, 21:50     Как выделить память под динамический двумерный массив
Ответ Создать тему
Опции темы

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