int posix_memalign(void **memptr, size_t alignment, size_t size);

分配在size上对齐的alignment字节。成功时返回0,失败时返回errno。
失败时*memptr是否设置为0?

最佳答案

也许可以,但不能保证。
请看the specification它只说:
成功完成后,posix_memalign()应返回零;否则,应返回错误号以指示错误。
它没有说明出错时*memptr会发生什么,所以我的理解是它的状态是未定义的。显然,最理智的两个行为是0,或者保持原样,但你不能依赖它。

关于c - 失败时posix_memalign()是否将指针设置为NULL?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26833153/

10-11 18:58