_int_malloc和malloc之间有什么区别(在Valgrind中)

use*_*652 13 malloc valgrind memory-management dynamic-memory-allocation

我很惊讶我找不到任何文件说明Valgrind 工具的输出_int_mallocmalloc输出之间的区别callgrind.

有人可以解释一下他们的区别吗?

此外,我实际上编写C++代码,所以我完全new不使用malloc,但在callgrind输出中只显示mallocs.

and*_*ett 5

malloc输出中列出的将是文件glibc/malloc/malloc.c中glibc 函数提供的callgrind实现。malloc__libc_malloc

该函数调用另一个仅供内部使用的函数,名为_int_malloc,它完成了大部分艰苦的工作。

由于编写标准库非常困难,因此作者必须是非常优秀的程序员,因此非常懒惰。因此,操作员无需编写两次内存分配代码,而是new调用malloc它来获取所需的内存。