gcc:"实现定义" malloc(0)定义了什么?

时间:2015-01-14 16:28:06

标签: c gcc malloc

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

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

1 个答案:

答案 0 :(得分:5)

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