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

start [/forum/topic.php?fid=57&tablet=1&tid=2018061]: |
0ms |
get settings: |
20ms |
get forum list: |
33ms |
check forum access: |
9ms |
check topic access: |
9ms |
track hit: |
101ms |
get topic data: |
24ms |
get forum data: |
6ms |
get page messages: |
84ms |
get tp. blocked users: |
3ms |
| others: | 413ms |
| total: | 702ms |

| 0 / 0 |
