我的代码中不断出现错误,无法找出错误所在。 该代码应该找到包含findValue的第一个节点,并将该节点从其当前位置移动到列表的开头。
以下是我收到的错误消息-
list.c:56:15: error: invalid operands to binary expression
('int (*)()' and 'int')
count << node->value << " ";
功能:
void findAndMove(listNode **listPtr, int findValue) {
if (*listPtr == NULL || (*listPtr)->next == NULL)
return;
listNode *secLast = NULL;
listNode *last = *listPtr;
while (last->next != NULL)
{
if(last->value == findValue)
{
break;
}
secLast = last;
last = last->next;
}
secLast->next = last->next;
last->next = *listPtr;
*listPtr = last;
}
void push(listNode** head_ref, int new_data)
{
listNode* new_node = new_listNode();
new_node->value = new_data;
new_node->next = (*head_ref);
(*head_ref) = new_node;
}
void printList(listNode *node)
{
while(node != NULL)
{
count << node->value << " ";
node = node->next;
}
}
答案 0 :(得分:-1)
void printList(listNode *node)
{
while(node != NULL)
{
count << node->value << " ";
node = node->next;
}
}
带有count << node->value << " ";
的这一行看起来像是您尝试使用C ++的标准命名空间中的cout。在C语言中,您需要像下面这样使用printf:
void printList(listNode *node)
{
while(node != NULL)
{
//count << node->value << " ";
printf("%d \n", node->value); //IDK what the print should be because you didnt post the node struct, but you need to use a function from the printf family if your printing
node = node->next;
}
}
EDIT 当我第一次阅读您的问题时,我以为您正在做一些改动,直到我阅读函数名称来尝试确定您要执行的操作。我假设带有“”的移位将移位32位,然后在某些int计数上移位node-> value,该移位从未分配,因此将得到优化。