TCMalloc - 获取指针的分配大小

TCMalloc - get size of allocation for a pointer

使用 TCMalloc - 给定堆分配对象,有没有办法获得对象的分配大小(意味着只有 malloc 调用中传递的大小)? 我要求一个 "reliable" 方法(即,假设分配大小存储在指针之前,不返回字大小)

从版本 1.6 开始,TCMalloc includes:

size_t tc_malloc_size(void*);

其中 returns 从参数开始的可用分配大小。

它与 glibc malloc_usable_size(或 BSD 的 malloc_size)相同,libtcmalloc 包括这两个函数的别名。

但是,不一定是最初请求的大小。它可能更大(通常是)。我不相信 TCMalloc(或大多数其他 malloc 实现)保留该元数据,因此(afaik)既没有可靠的机制也没有不可靠的机制来返回原始 malloc 调用并检查请求大小。