Я пытаюсь присвоить некоторую информацию для данных 'char' (одна структура и одно целочисленное значение), но после того, как я назначу ее, я не могу прочитать ее обратно.Любое решение?Я работаю на Ubuntu 16.04, установленной на virtualbox
struct opcode_struct{
uint8_t a;
uint8_t b;
uint8_t c;
uint8_t d;
};
union opcode{
uint32_t uint32code;
struct opcode_struct code;
};
struct request{
//4
union opcode opc;
//4
uint32_t id;
};
int main()
{
char *buff = (char*)malloc(32);
struct request rq = {0x00000001, 0}, *ptr_rq = &rq;
int val = 512, *ptr_int = &val;
memcpy(buff, ptr_rq, sizeof(rq));
memcpy((buff+sizeof(rq)), ptr_int, sizeof(int));
printf("Request opcode: 0x%08x\n", *buff);
printf("Request id: %d\n", *(buff+sizeof(uint32_t)));
printf("Int value: %d\n", *(buff+sizeof(rq)));
free(buff);
return 0;
}
Отображаемый текст: Код операции запроса: 0x00000001 Идентификатор запроса: 0 Int значение: 0
, но значение Int должно быть равно '512'