Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.54/48: Рейтинг темы: голосов - 48, средняя оценка - 4.54
3 / 4 / 1
Регистрация: 13.07.2011
Сообщений: 313

Нужно выделить память в куче

19.07.2011, 14:16. Показов 9748. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Работаю с довольно большим объемом данных, записанных матрицей. Для этого нужно выделить память в куче.
правильно ли я это делаю:
C++
1
2
int const range = 3000;
double **matrix = new *double[range];
В конце еще память освободить надо с помощью delete. Вот только все-равно ругается.
Помогите!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.07.2011, 14:16
Ответы с готовыми решениями:

Можно ли так выделить память в куче под указатель на массив?
Здравствуйте Можно ли выделить память в куче под указатель на массив например так:? int (*c)=(int (*)) new int; или нужно как...

Как выделить память для двумерного массива указателей в куче?
Есть массив вида: unsigned char *ddtКак выделить память для такого массива в куче? Должен получиться двумерный массив указателей. Сами...

Нужно выделить всю доступную процессу память блоками по 13 байт
Нужно выделить всю доступную процессу память блоками по 13 байт. Использовать нужно две функции : malloc HeapAlloc При этом нужно...

27
Эксперт С++
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
20.07.2011, 11:34
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от hello19 Посмотреть сообщение
Можете прям написать код, где создается нулевая матрица?
Пожалуйста:
C++
1
2
float **a = new float*[n];  // указатель на матрицу А
    for(j = 0; j<n; j++) a[j]=new float [n]();    // -- это и есть обнуление - скобочки ()
0
3 / 4 / 1
Регистрация: 13.07.2011
Сообщений: 313
20.07.2011, 11:40  [ТС]
Вот код построения матрицы
C++
1
2
3
4
5
6
int const range = 5;
    double **matrix = new double*[range];
    for (int i = 0; i < range; i++) 
    {
        matrix[i] = new double[range];
    }
1) Как заполнить матрицу нулями
2) Как работать с с i-ой строчкой, j-столбцом? Мне просто потом надо будет присваивать некоторым элементам матрицы кое-какие значения.
0
Делаю внезапно и красиво
Эксперт С++
 Аватар для Deviaphan
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
20.07.2011, 11:43
Цитата Сообщение от ValeryLaptev Посмотреть сообщение
new float [n](); // -- это и есть обнуление - скобочки ()
Работает только для единичных объектов. Для массивов конструктор нельзя непосредственно вызвать.
0
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
20.07.2011, 11:44
Цитата Сообщение от Deviaphan Посмотреть сообщение
Только при использовании operator[]
На итераторах скорость тоже не сильно отличается.
0
Делаю внезапно и красиво
Эксперт С++
 Аватар для Deviaphan
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
20.07.2011, 11:47
А, нет. Я был не прав. Обнуляет.
Кто мне объяснит, как это работает?

Добавлено через 54 секунды
Цитата Сообщение от fasked Посмотреть сообщение
На итераторах скорость тоже не сильно отличается.
Я имел в виду at(), там проверки дополнительные, которых ни в [], ни в итераторах нет.
0
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
20.07.2011, 12:33
Цитата Сообщение от Deviaphan Посмотреть сообщение
Кто мне объяснит, как это работает?
Хм... Дефолтный конструктор?
C++
1
int i = int();
0
Делаю внезапно и красиво
Эксперт С++
 Аватар для Deviaphan
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
20.07.2011, 12:50
Цитата Сообщение от fasked Посмотреть сообщение
Дефолтный конструктор?
Для массива? Принудительный вызов конструктора для встроенных типов?
Я был удивлён, не знал, что так можно.
0
Эксперт С++
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
20.07.2011, 15:20
Цитата Сообщение от Deviaphan Посмотреть сообщение
Работает только для единичных объектов. Для массивов конструктор нельзя непосредственно вызвать.
Речь здесь идет о double и float - элементарных типах данных. Для них и работает.
Для массивов реализованных типов я скобочки никогда не писал, ибо там по умолчанию все равно вызывается конструктор без аргументов.

Добавлено через 2 минуты
Цитата Сообщение от Deviaphan Посмотреть сообщение
Для массива? Принудительный вызов конструктора для встроенных типов?
Я был удивлён, не знал, что так можно.
Читайте правильные книжки...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.07.2011, 15:20

Работа с вводом. Нужно в зависимости от кол. введенных чисел выделить память
С++ Нужно выделять память в том количестве, сколько было введено чисел до нажатия Enter. Как такое реализовать? хз как в гугл...

Действительно ли new выделяет память в куче (heap)?
Чаще всего пишут что в куче . Ок . Куча процесса это вроде бы блок вполне конкретного размера . Я помню раньше это было 1Мб для intel и 4Мб...

Можно ли через список инициализации выделять память в куче
Можно через список инициализации выделять память в куче?

Как выделяется память на стеке и на куче? Когда нужна ручная очистка?
Всем здрасьте. //1 char s = 's'; //2 char* ss = new char; Во втором случае компилятор выделяет участок памяти, потом мне же её...

Массив: Нужно выделить память под 2-мерную матрицу, используя malloc...
Здравствуйте!Мне нужно выделить память под 2мерную матрицу в C стиле используя malloc.Я смотрел код одного программиста и он делал как в...


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

Или воспользуйтесь поиском по форуму:
28
Ответ Создать тему
Новые блоги и статьи
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru