Ответ 1
malloc
, указанный в выводе callgrind
, будет реализацией malloc
, предоставляемой функцией glibc __libc_malloc
в файле glibc/malloc/malloc.c.
.Эта функция вызывает другую функцию, предназначенную только для внутреннего использования, с именем _int_malloc
, которая выполняет большую часть тяжелой работы.
Поскольку написание стандартных библиотек очень сложно, авторы должны быть очень хорошими программистами и поэтому очень ленивыми. Таким образом, вместо того, чтобы писать код выделения памяти дважды, оператор new
вызывает malloc
, чтобы получить требуемую память.