小编Raf*_*ida的帖子

C结构填充问题

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;
Run Code Online (Sandbox Code Playgroud)

在C中执行此操作是否总是安全的,或者结构填充可能会导致问题?

编辑1(说清楚):是否保证数据[0] ..数据[3] == 1,数据[4] == 2,数据[5] ..数据[6] == 3,数据[ 7] ..数据[10] == 4,数据[11] ..数据[12] == 5和数据[13] == 6?

编辑2:编辑1时出现小错误

c struct padding

2
推荐指数
1
解决办法
408
查看次数

标签 统计

c ×1

padding ×1

struct ×1