使用TCMalloc - 给定堆分配对象,有没有办法获得对象的分配大小(意味着只在malloc调用中传递的大小)? 我要求一个可靠的"假设分配大小存储在指针之前,方法(即,不返回字大小)
答案 0 :(得分:2)
从版本1.6开始,TCMalloc includes:
x longword
1 I am a dentist in a health organization. dentist
2 I am a dentist in a health organization. dentist
返回从参数开始的分配的可用大小。
它与glibc size_t tc_malloc_size(void*);
(或BSD' s malloc_usable_size
)完全相同,而malloc_size
包含这两个函数的别名。
但是,不必然是最初请求的大小。它可能更大(通常是)。我不相信TCMalloc(或大多数其他malloc实现)保留了元数据,所以(afaik)既没有可靠的也不是不可靠的机制来计时回到原始malloc调用并检查请求大小。