1

一旦添加了额外的字节以引用执行时这些额外的字节会发生什么。这些额外的字节是空的还是其中将包含什么数据?

对此有任何帮助。谢谢!!!

4

3 回答 3

4

ISO 9899:2011 6.2.6.1/6

当一个值存储在结构或联合类型的对象中时,包括在成员对象中,对应于任何填充字节的对象表示的字节采用未指定的值。

这是未指定的行为,这意味着编译器可以将任何值放在那里,包括垃圾,只要它对所有结构都一致。编译器不需要向用户记录它如何处理填充字节。

于 2012-05-14T11:15:55.090 回答
3

它可以是任何东西。如果您使用 分配了结构calloc,那么它们最初将为零。但是后续操作可能会导致向它们写入垃圾。

于 2012-05-14T11:08:37.577 回答
1

填充在结构中完成以对齐其成员。这是由编译器出于优化目的完成的,以便访问更快。您不必担心结构中的间隙。继续并引用/取消引用您的结构的成员。一篇非常好的文章是http://www.geeksforgeeks.org/archives/9705

于 2012-05-14T11:15:48.087 回答