我试图从双端队列复制错误对象的内容,但是当我检查复制的内容时,它不正确。
typedef struct ER_OBJECT
{
uint8 error_type;
union
{
uint32 number;
char *message;
} error;
} ER_OBJECT;
void er_copy(DE_LIST *deque, ER_OBJECT *object)
{
ER_OBJECT *marker;
marker = er_get_first_object(deque);
memcpy(object, marker, sizeof(*marker));
}
包括该功能在内的一切都er_get_first_object
按预期工作,即我可以检查标记的内容并且它是正确的。这让我相信问题出在 memcpy 上。
如果我创建第二个指向名为marker2 的ER_OBJECT 的指针,并使用memcpy 将marker 的内容复制到marker2 中,一切正常。只有当我尝试将标记的内容复制到外部对象时才会发生错误。
有人会那么好心地指出我做错了什么吗?