c - gcc: "implementation-defined"malloc(0) 是如何定义的?

标签 c gcc malloc

C 标准(例如 C99)告诉 malloc(0) 返回“可以成功传递给 free() 的空指针或唯一指针”。两者中的哪一个是实现定义的。 (这已在 StackOverflow 上被多次询问,例如 1234。)

我的问题是:GCC 是如何定义它的?

最佳答案

GCC 根本没有定义它。 GCC 使用标准库提供的malloc() 实现。在 OS X 上,这将是 libSystem,在 Linux 上,这通常是 glibc 或 eglibc 等。这些库是开源的,因此您可以浏览源代码。

关于c - gcc: "implementation-defined"malloc(0) 是如何定义的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27947777/

相关文章:

c - 如何比较数字任务

c++ - 在不同环境中正确使用 C 虚拟函数替换

调用 fopen 在运行时出现 malloc 错误

c - 函数中赋值的指针返回后为空

c - 我想将数据插入二叉树,但在 3 个输入后显示段错误

c - rand() 的实现

c - Makefile 无法在子文件夹中找到文件

c - 为什么我在 Ubuntu 上收到隐式声明函数 'open64'/'openat'/'openat64' 警告?

c - Gcc 4.8.2 默认编译和运行可变长度数组

C 数组结构给出随机段错误 + valgrind 无效写入错误