可能的重复:
才能获得Malloc的大小
查询分配块的大小的任何功能?
仅使用返回的指针
让我们说,我让用户使用malloc函数指定要传递给int *x的字节数。有没有办法确定分配给整数的字节的实际数量?
没有便携式方式。语言标准没有提供任何方法。
每个实现都需要跟踪malloc
ED内存的大小,以某种方式能够正确地free
IT,因此它可以提供一种获取该信息的手段。在GLIBC的malloc.h
中,有一个原型
size_t malloc_usable_size(void *);
允许您以分配给传递指针的可用字节数量,但通常比malloc
调用中要求的字节数大。其他实现可能会提供其他方法来获取这种信息。