C/C++字符数组填充疑问:元素之间是否存在填充?
C/C++数组填充的常见误区解析
- 多数技术资料(包括StackOverflow的相关讨论)都明确:C语言数组的元素之间绝对不会存在填充,数组内的元素是连续紧密排布的。你通过C++程序打印字符数组元素地址未发现元素间空隙,也印证了这一点。
- 《编译原理:原理、技术与工具(第二版)》中提到的「长度为10的字符数组可能被分配12字节」,这里的填充并非在数组元素之间,而是位于数组的末尾。这种情况出现在有整数对齐要求的机器上,额外分配的字节是为了满足后续数据的内存对齐规则,避免因对齐问题导致性能损耗或运行错误。
内容的提问来源于stack exchange,提问作者Kishore Suresh
相关产品推荐
相关产品推荐

