以下是c ++代码段
struct node {
struct shm_ipc_msg_s msg;
struct node *next;
};
enqueue_shm_events(Queue *q, shm_ipc_msg *msg)
{
struct node *temp = new node;
temp->msg = msg; // error here!!!!
if (q->front == NULL)
q->front = temp;
else
q->rear->next = temp;
}
错误:
error: no match for 'operator=' in 'temp->node::msg = msg'
任何人都可以帮我纠正这个错误
提前致谢
答案 0 :(得分:1)
你有两个问题:
修复1:各种修复。一种可能性是typedef struct shm_ipc_msg_s shm_ipc_msg
修复2:将失败的行更改为temp->msg = *msg;
以取消引用指针,以便您可以复制实际的结构内容