[an error occurred while processing this directive] [an error occurred while processing this directive]
malloc вобщем-то не есть часть компилятора
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено yes 07 декабря 2001 г. 12:51
В ответ на: Хочу malloc для Ht-pic(+) отправлено abivan 07 декабря 2001 г. 12:01

по хорошему она даже не есть часть libc
(то есть функции по работе с КУЧЕЙ из ЛИБСи вызывают функции системы для распределения памяти)
*alloc-и вызывают sbrk

как это реализовывается можно посмотреть в ecos-e, rtems-e, и т/д
то есть смотреть исходники библиотеки не достаточно

но думаю это не для ПИКа - слишком велики расходы

а для ПИКа - заведите глобальный массив char[] и указатель на последнюю занятую ячейку - и пользуясь sizeof и void * - смело вперед (к каждому выделенному блоку памяти добавляете 1 ячейку с его размером и флагом удален блок или нет)

проблемы фрагментации не решаются и в "фирменных" alloc-ах

единственно непонятно как обрабатывать исключение по завершению свободной памяти - предлагаю красный светодиод :)

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

Ответы



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

E-mail: info@telesys.ru