c++ - TCMalloc - 获取指针的分配大小

标签 c++ c memory-management free tcmalloc

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

最佳答案

从版本 1.6 开始,TCMalloc includes :

size_t tc_malloc_size(void*);

它返回从参数开始的分配的可用大小。

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

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

关于c++ - TCMalloc - 获取指针的分配大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49281720/

相关文章:

c - Makefile 缺少分隔符但有硬制表符

java - 返回 HashMap 的 Collection View 的更简洁的方法?

java - 测试 Swing 应用程序

r - 如何为 R 中的变量分配固定内存大小

c++ - 为什么 Avira 将 "CoCreateInstance()"视为恶意软件?

c - 如何编写 C 字符串函数 : strncpy , strncat 和 strncmp

复制文本文件错误

c++ - 从数组中存储和读取字符串

c++ - Unicode/俄语字符和 Win32 api [C++]

C++ 设置 : No match for - operator