Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
可能重复: 任何查询已分配块大小的函数? 仅使用返回的指针获取 malloc 的大小
假设我让用户使用 malloc 函数指定要传递给 int *x 的字节数。有没有办法确定分配给整数的实际字节数?
没有便携的方式。语言标准没有提供任何方法来做到这一点。
当然,每个实现都需要以某种方式跟踪malloced 内存的大小,以便能够正确free处理它,因此它可以提供一种获取该信息的方法。在 glibc 中malloc.h,有一个原型
malloc
free
malloc.h
size_t malloc_usable_size(void *);
这允许您获得为传入指针分配的可用字节数,但这通常大于malloc调用中请求的字节数。其他实现可能会提供其他方式来获取此类信息。