C posix_memalign()是否在失败时将指针设置为NULL?

C posix_memalign()是否在失败时将指针设置为NULL?,c,C,分配大小在对齐上对齐的字节。成功时返回0,失败时返回errno 失败时是否将*memptr设置为0?可以,但不能保证 看看它只是说: 成功完成后,posix_memalign()应返回零;否则,应返回错误号以指示错误 它没有说明发生错误时*memptr会发生什么,因此我认为它的状态是未定义的。显然,两个最理智的行为应该是0,或者保持原样,但你不能依赖它。缺乏规范意味着这是未指定/未定义的行为。因此,你不应该依赖任何特定的行为。@OliverCharlesworth谢谢。就像你说的,我在手册里没找

分配
大小
对齐
上对齐的字节。成功时返回0,失败时返回errno


失败时是否将
*memptr
设置为0?

可以,但不能保证

看看它只是说:

成功完成后,
posix_memalign()
应返回零;否则,应返回错误号以指示错误


它没有说明发生错误时
*memptr
会发生什么,因此我认为它的状态是未定义的。显然,两个最理智的行为应该是0,或者保持原样,但你不能依赖它。

缺乏规范意味着这是未指定/未定义的行为。因此,你不应该依赖任何特定的行为。@OliverCharlesworth谢谢。就像你说的,我在手册里没找到。因此,我认为我应该在posix_memalign失败时手动将*memptr设置为NULL。例如,有一个实现可用,该特定实现在失败时不触及*memptr(尽管规范中没有任何内容阻止它这样做)。
int posix_memalign(void **memptr, size_t alignment, size_t size);