小编tro*_*813的帖子

为什么C标准库没有提供知道分配内存大小的函数?

当通过调用动态分配一定量的内存时malloc(),操作系统内部会以某种方式存储分配的内存量(以跟踪已使用的内存等),因此我们仅在free()不再需要该内存块时提供指针。

但是,我们无法以可移植且与操作系统/编译器无关的方式检索只有指针的大小。也存在一些不可移植的方式类似_msize在Windows /的Visual C,或malloc_usable_size在glibc的。因此,唯一的方法仍然是传播所有需要的大小以及相应的指针等,这很容易出错。

所以,问题是:为什么 C 标准开发人员决定不在标准中包含可移植功能?

PS 问“为什么”可能是不恰当的,因为它通常至少在某种程度上涉及基于意见的事情,但在这里我相信有一些基本的理由这样做。

c memory size malloc memory-management

2
推荐指数
2
解决办法
173
查看次数

标签 统计

c ×1

malloc ×1

memory ×1

memory-management ×1

size ×1