请问C语言中数组成员在内存中的地址是连续存放的,结构体的成员在内存中是连续存放的吗?

2024-11-29 00:47:50
推荐回答(3个)
回答(1):

结构体的成员在内存中不一定是连续存放的,因为要符合对齐要求,就有可能空出某些单元来。比如:

这张图片说明:系统为结构体分配了8个字节,而实际上只用5个(x1字节,y4字节);从x和y的地址可以看到在x和y之间空出了3个字节。

回答(2):

这个不一定,结构体所占用的内存是连续的,但其中各个成员不一定是连续存放的,要看你结构体中定义成员顺序是否有字节对齐,可参见:http://www.cnblogs.com/plxx/p/3382588.html

回答(3):

一般来说,结构体成员在内存中是连续存放的。