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

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

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

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

25.04.2014, 17:52. Просмотров 553. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как выделить память под динамический двумерный массив (C++):

Как правильно выделить память под двумерный массив в шаблоне? - C++
template <class T> T* array <T>::f (unsigned size) { //...... T* templateBuf = new T ; for (unsigned index = 0;...

Выделить память под динамический массив указателей - C++
Нужно выделить память вот под такое дело. Для примера n=5 . Ничего нагуглить так и не смог :( что есть : #include "stdafx.h" ...

Выделить память под двумерный массив за один вызов функции malloc - C++
Выделить память под двумерный массив за один вызов функции malloc Если можно - с комментариями

Как выделить память под массив в структуре? - C++
Здравствуйте , воnрос конечно глуnый , но голову я сижу ломаю долго , есть Структура , в ней есть массив , как nод этот массив выделить...

Динамически выделить память под массив - C++
Добрый день форусчани Как можно выделить память под массив объекта класса class Save_Colection { public: pk *field; ...

Динамически выделить память под массив - 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, благодарю за пояснения
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.04.2014, 21:50
Привет! Вот еще темы с ответами:

Выделить память под массив неизвестной длины - C++
для программы нужен массив int Array т.е. длину строки я знаю, а сколько строк у меня будет - не представляю. я знаю, что...

Динамически выделить память под массив функций - C++
QByteArray (SerfingThread::*lp_GetRequest)(const QByteArray&amp; ,const QByteArray&amp;); как сделать тоже самое только через new? как правильно...

Выделить память под массив размера 2^64 байтов - C++
Требуется выделить память под массив размера 2^64 байтов. Как порекомендуете решать данную задачу?

Выделить и удалить память под 4 мерный массив - C++
пацаны помогите.. Добавлено через 1 час 11 минут .помогите..не могу вобще натйи 4 мерные масивы..только 2хмерные


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
25.04.2014, 21:50
Ответ Создать тему
Опции темы

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