查找malloc函数指定的大小

时间:2012-10-19 13:50:21

标签: c memory integer malloc

  

可能重复:
  Any function to query the size of an allocated block?
  Getting the size of a malloc only with the returned pointer

让我们说我让用户使用malloc函数指定要传递给int * x的字节数。有没有办法确定分配给整数的实际字节数?

1 个答案:

答案 0 :(得分:3)

没有可移植的方式。语言标准没有提供任何手段来做到这一点。

每个实现都需要以某种方式跟踪malloc内存的大小,以便能够正确地free它,因此它可以提供获取该信息的方法。在glibc的malloc.h中,有一个原型

size_t malloc_usable_size(void *);

允许您获取为传入指针分配的可用字节数,但这通常大于malloc调用中请求的字节数。其他实现可能提供其他方法来获取此类信息。