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 проблемы с прокладкой конструкции
Редактировать 1 (уточнить): гарантировано, что данные [0] .. данные [3] == 1, данные [4] == 2, данные [5] .. данные [6] == 3, данные [7] .. данные [10] == 4, данные [11] .. данные [12] == 5 и данные [13] == 6?
Edit 2: маленькая ошибка при редактировании 1
Вы проверили 'sizeof' эту' struct'ure? –
Нет, это не безопасно. Заполнение * будет * проблемой. –
Комментарий после вашего редактирования: Нет, это не из-за возможного заполнения. –