Diferencia entre memcpy y copia por asignación
Struct A
{
uint16_t len;
uint8_t cnt;
uint8_t unit;
uint32_t seq;
};
Esta estructura A se serializa en unchar *
buf. Si quiero deserializar los valores individuales, por ejemplo:
uint16_t len = 0;
memcpy(&len, buf, sizeof(len));
o solo puedo hacer
uint16_t len = (uint16_t) buf;
¿Cuál es mejor o son los dos iguales?
También para deserializar toda la estructura, si solo hago
A tmp;
memcpy(&tmp, buf, sizeof(A));
¿Funcionaría bien o debería estar preocupado por el relleno, etc. del compilador?