Какая разница между _int_malloc и malloc (в Valgrind)

Я поражен тем, что не могу найти какой-либо документ с указанием разницы между _int_malloc и malloc на выходе инструмента Valgrind callgrind.

Может ли кто-нибудь объяснить, в чем их отличие?

Кроме того, я на самом деле пишу код С++, поэтому я использую исключительно new not malloc, но в выводе callgrind отображаются только mallocs.

Ответ 1

malloc, указанный в выводе callgrind, будет реализацией malloc, предоставляемой функцией glibc __libc_malloc в файле glibc/malloc/malloc.c.

.Эта функция вызывает другую функцию, предназначенную только для внутреннего использования, с именем _int_malloc, которая выполняет большую часть тяжелой работы.

Поскольку написание стандартных библиотек очень сложно, авторы должны быть очень хорошими программистами и поэтому очень ленивыми. Таким образом, вместо того, чтобы писать код выделения памяти дважды, оператор new вызывает malloc, чтобы получить требуемую память.