好的。它可以被称为其他任何东西,如 _msize在 Visual Studio 中。
但是,在给定使用 malloc 分配的内存块的情况下,为什么标准中没有返回内存的大小?由于我们无法判断 malloc 之后的返回指针指向了多少内存,因此我们可以在需要时使用此“memsize”调用返回该信息。 “memsize”和 malloc/free 一样是特定于实现的
只是问问,因为我不得不写一个 wrapper有时回来存储一些额外的字节大小。
最佳答案
因为 C 库(包括 malloc
)是为最小开销而设计的。像您想要的那样的函数需要实现记录分配的确切大小,而实现现在可以根据需要选择“四舍五入”大小,以防止在 realloc
中实际重新分配。
存储大小需要每次分配额外的 size_t
,这对于嵌入式系统来说可能很重。 (对于在编写 C89 时仍然很丰富的 PDP-11 和 286。)
关于c - 为什么 C 中没有 "memsize"返回使用 malloc 在堆中分配的内存块的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4959938/