内存地址对齐与指针步长的考察

在32位系统中,下面代码的打印结果是4,120

 void main()

{

#pragma pack(2)
typedef struct {
unsigned long index;
char name[9];
char *attr[4];
}tSA,*ptSA;
#pragma pack()
int z=sizeof(tSA);
tSA sa[5];
ptSA psa1=sa,psa2=&sa[4];
unsigned long i=(unsigned long )psa1,j=(unsigned long )psa2;
int len=sizeof(psa1);
printf("%d,%d",psa2-psa1,j-i);

内存地址对齐与指针步长的考察_第1张图片

你可能感兴趣的:(内存地址对齐与指针步长的考察)