【发布时间】:2011-06-25 00:01:32
【问题描述】:
好的。在 Visual Studio 中,它可以被称为 _msize 中的任何其他名称。
但是为什么在给定使用 malloc 分配的内存块的情况下返回内存大小不是标准?由于我们无法判断 malloc 后面的返回指针指向了多少内存,因此我们可以在需要时使用这个“memsize”调用来返回该信息。 “memsize”和 malloc/free 一样是特定于实现的
只是询问,因为有时我不得不写一个 wrapper 来存储一些额外的字节大小。
【问题讨论】:
-
既然你,程序员,最初是负责分配内存的,你应该已经知道块的大小了。
-
@Maxim Yegorushkin 唯一的情况是我必须编写包装器使用第三方库,该库需要一些内存分配/释放,并保持全局分配多少内存的计数。因此,在释放时,我需要知道为即将释放的块分配了多少内存。这是图书馆工作所必需的。
-
@Paul R 这是正确的,因此我提到了包装器。我只是好奇,所以这个问题
-
@MeThinks:但是
free()已经为您管理好了! -
@Steve 我曾在 C 标准委员会 X3J11 任职。通常只有在需要的人有足够的影响力时才会添加东西——主要是编译器供应商。
标签: c memory-management