Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как правильно перевыделять память?
|
|||
|---|---|---|---|
|
#18+
Реализую двумерный динамический массив. При его создании количество элементов по обоим измерениям точно не известно. Поэтому хочется как-то оптимально перевыделять память: 1. delete и new убивают весь кусок памяти и создают его по новой. 2. realloc не переносит старые данные в новую память, поскльку у нее в параметрах нет размера старого объема памяти. Как подобную задачу решить лучше всего? p.s. Второе измерение массивов принимает большИе значения (порядка миллиона), поэтому желательна конструкция "массив массивов" (а не один кусок, в котором с помощью размеров массива и двух индексов определяется текущий единый индекс). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2017, 11:54 |
|
||
|
Как правильно перевыделять память?
|
|||
|---|---|---|---|
|
#18+
Я правильно понимаю, что функция realloc получает указатель на старый кусок, чтобы попытаться там же и выделить память? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2017, 12:06 |
|
||
|
Как правильно перевыделять память?
|
|||
|---|---|---|---|
|
#18+
AlekseySQL, std::map<std::pair<size_t,size_t>,type_to_store> Можно обращаться к любой паре (x / y), можно проверить существование элемента, можно не хранить отсутствующие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2017, 14:07 |
|
||
|
Как правильно перевыделять память?
|
|||
|---|---|---|---|
|
#18+
AlekseySQL2. realloc не переносит старые данные в новую память, поскльку у нее в параметрах нет размера старого объема памяти. Ошибаешься, realloc переносит http://www.cplusplus.com/reference/cstdlib/realloc/?kw=realloc AlekseySQLp.s. Второе измерение массивов принимает большИе значения (порядка миллиона), поэтому желательна конструкция "массив массивов" (а не один кусок, в котором с помощью размеров массива и двух индексов определяется текущий единый индекс). Можешь вектором сделать Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2017, 14:35 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=39543323&tid=2018061]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
71ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
2ms |
| others: | 270ms |
| total: | 425ms |

| 0 / 0 |
