[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
по хорошему она даже не есть часть libc
(то есть функции по работе с КУЧЕЙ из ЛИБСи вызывают функции системы для распределения памяти)
*alloc-и вызывают sbrk
как это реализовывается можно посмотреть в ecos-e, rtems-e, и т/д
то есть смотреть исходники библиотеки не достаточно
но думаю это не для ПИКа - слишком велики расходы
а для ПИКа - заведите глобальный массив char[] и указатель на последнюю занятую ячейку - и пользуясь sizeof и void * - смело вперед (к каждому выделенному блоку памяти добавляете 1 ячейку с его размером и флагом удален блок или нет)
проблемы фрагментации не решаются и в "фирменных" alloc-ах
единственно непонятно как обрабатывать исключение по завершению свободной памяти - предлагаю красный светодиод :)
E-mail: info@telesys.ru