我不理解 合适的 指针对齐概念:
对分配的存储的内容没有限制 从分配函数返回。顺序,连续性和 连续调用分配的存储初始值 分配功能未指定。返回的指针应该是 适当对齐 ,以便可以将其转换为任意指针 具有基本对齐要求的完整对象类型(3.11) 然后用于访问分配的存储中的对象或数组 (直到通过调用a显式释放存储空间为止 相应的解除分配功能)。
sec.3.11 中没有合适对齐的定义。你解释一下应该是什么意思?
答案 0 :(得分:3)
§3.11/ 1说,
对象类型具有对齐要求(3.9.1,3.9.2),这些要求对地址设置了限制 可以分配该类型的对象。
因此,如果指针“适当对齐”,则意味着指针所代表的地址满足这些限制。这对于地址的数值究竟意味着什么是实现定义的。
答案 1 :(得分:3)
这意味着对于具有基本对齐的任何完整对象类型,应该可以将返回的指针转换为指向该对象类型的指针,并遵循该对象类型的对齐要求。
实际上,由于对齐是2的幂,这意味着需要分配函数来返回与alignof(std::max_align_t)
对齐的指针。
没有单独的定义"合适的对齐&#34 ;;在本段中和其他地方一样#34;适当地"只是意味着要求程序满足该段其余部分的要求。
答案 2 :(得分:2)
对齐由操作系统和平台定义。通常它是最大基本类型(指针或double
)的大小,但它可能更多。例如,在Windows上,x86是8字节,x64是16字节。