Я не знаком с этой оболочкой, но вот что она делает
1 - если указан размер = 0, вместо этого выделяется 1 байт, если базовый malloc этого не сделал
это, по-видимому, сделано для того, чтобы абонент мог по-прежнему свободно использовать его (например, realloc)
2 Я предполагаю, что попытка заставить подсистему памяти выглядеть более сложной для памяти
3 XMALLOC_POISON заставляет буферизовать в известное состояние
это обычная практика для предотвращения и обнаружения нечетных ошибок, вызванных неинициализированными данными
Во-вторых - почему вы хотите обернуть malloc. Начните с идеи того, что вы хотите сделать, а затем внедрите ее или скопируйте реализацию. Причины упаковки malloc
- обнаружение утечки
- анализ использования
- пул памяти
- отладка (например, XMALLOC_POISON)
- принудительная проверка
Почти все это можно сделать с помощью valgrind, который делает гораздо больше.
Книга «Написание твердого кода» имеет хороший набор обёрток для памяти 1,4 и 5