Re[3]: частичное высвобождение памяти
От: Andrij Украина  
Дата: 04.08.02 09:44
Оценка:
Здравствуйте 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 ...)
— каждий из вариантов имеет свои +/- — выбирай
make it simple as possible, but not simpler
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.