[an error occurred while processing this directive]
я так сделал
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
миниатюрный аудио-видеорекордер mAVR

Отправлено Romario 25 июля 2002 г. 15:46
В ответ на: Ответ: (+) отправлено Алексей Мусин 25 июля 2002 г. 15:35

криво конечно...я особо не парился...
у меня два условно говоря функциональных потока, где нужен malloc:
поток A и B. Использование кучи в потоке A более итенсивное чем в B,
поэтому я взял да и сделал 2 кучи из статических массивов.
в потоке B вообще фрагментации никакой почти, т.к. часто возникают моменты когда куча B полностью освобождается.
а насчет кучи A: куски данных идут хоть и неизвестного размера но примерно одинакового, поэтому освободив напрмер внутри кучи пару entrys, туда без проблем можно вставить еще один подобный. К тому же, есть временной параметр хранения самого старого элемента списка, поэтому куча потихоньку да и освобождает места под новые элементы (в начале).
Короче, я тоже боялся фрагментации но вот сколько пользуюсь, все было
нормально. А переполнение возникало,но не так, что внутри кучи есть свободные участки, а вставить в них нельзя, только изза размера самой кучи.

p.s. ессно в вызове malloc пришлось вставить id кучи
p.p.s а вообще ,imxo, все это индивидуально

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru