Здравствуйте gh, Вы писали:
gh>Здравствуйте DarkGray, Вы писали:
DG>>Здравствуйте gh, Вы писали:
gh>>>как можно высвободить оставшуюся память с 21 по 50?
DG>>a = (int*)realloc (a, 20 * sizeof(int)); //20 — новый размер блока.
gh>Это понятно.
gh>Только при этом, на сколько я понимаю, происходит выделение памяти в другом месте и туда происходит копирование этих 20 элиментов, а та память высвобождается.
gh>Но это помоему не очень оптимально, так как реально у меня массив гдето на 5000*16 байт и очень часто идёт выделени и перераспределение. Меня волнует вопрос об оптимальности.
gh>Или тогда надо что то другое думать...
Можно написать свой класс и память выделять кусками — потом ненужные висвободить
Можно использовать системние функции Windows управления виртуальной памятю (VirtualAlloc ...)
— каждий из вариантов имеет свои +/- — выбирай