struct something {
uint32_t a;
uint8_t b;
uint16_t c;
uint32_t x;
uint16_t y;
uint8_t z;
};
uint8_t *data = malloc(14);
struct something *s = (struct something *)data;
s->a = 1;
s->b = 2;
s->c = 3;
s->x = 4;
s->y = 5;
s->z = 6;
在C或结构填充中执行此操作总是安全可能会导致问题吗?保证数据[0] ..数据[3] == 1,数据[4] == 2,数据[5] ..数据[6]数据[3] == 1,数据[4] == 3, == 3,data [7] .. data [10] == 4,data [11] .. data [12] == 5和data [13] == 6?C结构填充问题
编辑2:上编辑1
你是否检查了'sizeof'这个'struct'ure? –
不,它不安全。填充*会*成为问题。 –
编辑之后的评论:不,这不是因为可能的填充。 –