gpt4 book ai didi

c - c中没有堆吗?

转载 作者:太空狗 更新时间:2023-10-29 16:23:26 26 4
gpt4 key购买 nike

我刚刚开始阅读 Brian Kernighan 和 Dennis Ritchie 合着的The C Programming Language,我发现了这个声明:

The language does not define any storage allocation facility other than static definition and the stack discipline provided by the local variables of functions; there is no heap or garbage collection.

那么这是否意味着 C 可以访问堆内存是由于 malloc() 函数,它从堆中返回一些内存地址?然后 malloc 是否必须用其他语言编写,很可能是汇编语言或 B?

这可能是一个愚蠢的疑问,但我必须澄清它。谢谢。

最佳答案

C 语言 本身并不直接指定堆或它应该如何工作,但确实提供了指针等。

malloc 及其表兄弟是 C 标准库的一部分,是您可以链接到 C 的任何标准实现的函数,并且那些确实提供访问到非静态或堆栈上的内存。在每个平台上,这些函数实际获取和管理内存的方式可能不同。

C 是一种历史悠久的语言和库,现在它们似乎是一体的。但是当 K&R 编写那本书时,这并不是那么明显,并且该声明澄清了什么属于语言本身的语法(相对于支持库通常提供的内容)。

关于c - c中没有堆吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12059073/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com