Прямой доступ к памяти - C (СИ)
Формулировка задачи:
Подскажите как сделать чтобы функция ChangeId меняла член структуры,
я рассматриваю что после padding в структуре следующая структура памяти 4байта дата, 1байт айди и следующие три пустые
typedef struct { uint32_t data; uint8_t id; }TDateTime_t; void ChangeData(TDateTime_t *self, uint32_t value) { uint32_t *ptr = &self[0]; *((uint32_t *)ptr) = value; } void ChangeId(TDateTime_t *self, uint8_t value) { uint8_t *ptr = &self[0] + 4; *((uint8_t *)ptr) = value; } int main() { TDateTime_t DateTime = { 0 }; ChangeData(&DateTime, 0xFFFFFFFF); ChangeId(&DateTime, 0xFF); return 0;
я знаю что для таких вещей void* тоже подходит? тыкните пальцем что не так
Решение задачи: «Прямой доступ к памяти»
textual
Листинг программы
*(uint8_t *)ptr
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д