【发布时间】:2011-07-16 19:00:18
【问题描述】:
它是否返回零指针?行为是否标准化?
STL 分配器怎么样?
我用谷歌搜索了它,但找不到我正在寻找的答案。
编辑:链接的问题没有解释 STL 分配器。
我还有一个相关的问题。如果尝试释放零指针会发生什么?
allocator.deallocate(0, 1);
【问题讨论】:
-
在 linux 盒子上输入 man malloc 提供有用的信息(并确认 Jim 的回答)
它是否返回零指针?行为是否标准化?
STL 分配器怎么样?
我用谷歌搜索了它,但找不到我正在寻找的答案。
编辑:链接的问题没有解释 STL 分配器。
我还有一个相关的问题。如果尝试释放零指针会发生什么?
allocator.deallocate(0, 1);
【问题讨论】:
malloc(0) 可能或者返回 0 或者它可能返回唯一地址(不得访问)——C89 和 C99 标准允许任何一种行为,但不强制任何一种行为。 (一个标准的糟糕设计,我在 X3J11 上时反对,但事实就是这样。)
顺便说一句,这是一个重复的问题:what does malloc(0) return?
【讨论】:
在 Linux 2.6.34.7-66.fc13.x86_64 上测试,它返回一个唯一的地址。
不过,我不会尝试取消引用它。 :)
【讨论】: