我更改了代码,将 memcpy 移到了 if 语句中,但我仍然得到同样的错误。
** * 返回一个用给定顺序填充的新链表节点,函数 * 分配一个新顺序并复制存储在数据中的值,然后分配一个 * 链表节点。如果您正在实现此功能,请确保您 * 复制,因为原始数据可能会被调用函数修改。*/
struct order
{
int id;
char side;
int quantity;
double price;
};
struct onode
{
struct order* data;
struct onode* next;
struct onode* prev;
};
struct onode* newNode (struct order* data)
{
struct order* dataValue = (struct order*) malloc(sizeof(struct order));
struct onode* linkedlist = (struct onode*) malloc(sizeof(struct onode));
if(data != NULL)
{
linkedlist ->data = dataValue;
memcpy(dataValue, data, sizeof(*dataValue));
}
else
{
return NULL;
}
linkedlist->prev = NULL;
linkedlist->next = NULL;
return linkedlist;
}