以下哪种C数据结构使用更多内存

  • 本文关键字:内存 数据结构 c memory
  • 更新时间 :
  • 英文 :

struct {char c; int i;} A[100];                                      
struct {char c[100]; int i[100];} B;     

我需要尽量减少使用的内存量。其中哪些使用较少,为什么?

第二个通常使用较少。

由于对齐限制,第一个可能会生成一个8字节的结构,100个副本总共使用800字节;一个字节用于char,三个字节用于填充,四个用于int

第二个不需要填充对齐(char数组以四字节对齐结束(,只分配100个字节,然后为总共使用的500字节内存分配400个字节。

这假设int是四个字节,这是迄今为止最常见的情况;根据怪异系统的需要进行调整。

最新更新