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? –
不,它不安全。填充*會*成爲問題。 –
編輯之後的評論:不,這不是因爲可能的填充。 –