Код для malloc и бесплатный - PullRequest
13 голосов
/ 26 июня 2011

Где я могу найти код для malloc, который сейчас использует мой компилятор gcc?Я действительно хочу написать свою собственную функцию malloc, которая будет немного отличаться от оригинальной.Я знаю, что могу использовать ловушки и все такое, но я хочу увидеть реальный код.

Ответы [ 4 ]

18 голосов
/ 26 июня 2011

Интерфейс POSIX для malloc равен , определенному здесь .

Если вы хотите узнать, как библиотека C в GNU / Linux (glibc) реализует malloc, перейдите и получите исходный код из http://ftp.gnu.org/gnu/glibc/ и посмотрите на файл malloc/malloc.c.

Существует также базовая документация Allocator Memory от Doug Lea , которая описывает теорию m (emory) alloc (ator) (читать это осторожно, а затем решите, действительно ли вам нужно реализовать свой собственный malloc).

7 голосов
/ 26 июня 2011

Посмотрите в соответствующем выпуске glibc на старом сайте 1 или здесь . Например, если вы используете glib 2.9, он находится в этом архиве . Ищите файл malloc/malloc.c.

Вы увидите, что это не тривиальный кусок библиотечного кода.


1 Похоже, они изменили структуру каталогов после glibc-2.9.

1 голос
/ 14 апреля 2015

Я могу просмотреть источник онлайн здесь .

1 голос
/ 26 июня 2011

malloc() должно быть в glibc.

Дополнительная литература
Многопоточность
C ++ распределение трюки [видео]

...