c - 为什么在免费声明中没有提供尺寸

标签 c free

<分区>

Possible Duplicate:
C programming : How does free know how much to free?

大家好,

当我们定义 free(pointer) 时,操作系统如何知道我必须释放多少大小。 我的意思是我们不提供任何大小,只提供指向自由声明的指针。 内部如何处理大小?

谢谢, 尼尔

最佳答案

操作系统不会有任何线索,因为 free 不是系统调用。但是,当内存最初由 malloc() 分配时,您的 C 库内存分配系统将以某种方式记录大小,因此它知道要释放多少。

关于c - 为什么在免费声明中没有提供尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3441819/

相关文章:

c++ - 如何找出 cl.exe 的内置宏

c# - DLLImport(C 代码) C# 试图读取或写入 protected 内存。这通常表明其他内存已损坏”

c - 在C中实现Realloc

c - C中打印指针地址【二问】

c++ - 如何强制编译器将 C 名称改写为 C++ 名称

c - 未找到外部变量

c - 为什么这段代码会抛出段错误?

c - 我是否在此 C 程序中正确释放内存?

c - 在 C 中包含可变 header 路径

c - strdup() 的用法