结构体嵌套结构体数组的内存地址以及偏移

typedef struct Request_name
{
int a;
}Request_name;

struct bus_route
{
char name[20]; 20byte
char password[8]; 8byte
Request_name requestName[20]; 4*20byte
int status 4byte
}*Onuser;

Onuser=new bus_route(20);
Onuser->requestName[30].a = 400;

对应于Onuser[1].requestName[2]=400


1个Onuer = 20 + 8 + 4*20 + 4 = 112byte


Onuser->requestName[30] = 20 + 8 + 4(requestName的sizeof)* 30 = 148 byte
则148 - 112 - 20 - 8 = 8 byte ( 0(【0】) - 4(数组【1】) - 8【2】)
112为第一个Onuser[0].
因此148为Onuser[1].requestName[2]




new int(10); //创建一个指向int类型数据的指针,并初始化它所指对象的值为10。
new int[10]; //创建指向10个大小的int数组的指针。

相关文档
最新文档