我是新来的,所以很抱歉没有提供我应该获得的所有必要信息,但这里没有。
struct node {
int data;
struct node* next;
struct node* previous;
};
*currentB = MultByTen(*currentB); // this is a line in another function.
// currentB is a struct node with data it in.
struct node* MultByTen(struct node* current) {
struct node *newNode = malloc(sizeof (struct node));
newNode->data = 0;
newNode->next = NULL;
while (current->next != NULL) {
current = current->next;
}
newNode->previous = current;
current->next = newNode;
return current;
}
我从旁边有注释的那一行代码中得到“错误:从类型” int”分配为类型” struct node”时不兼容的类型。
我正在返回结构节点*,所以我不知道为什么会收到此错误。有任何想法吗?
-编辑:
currentB是一个链表,其中包含数据。它是
struct node* currentB = malloc(sizeof(struct node));
出于示例目的,它是1-> 2-> 3-> 4-> NULL,而我想要的MultByTen只是在列表末尾添加一个0,这样它将变成1-> 2-> 3 -> 4-> 0-> NULL
最佳答案
我猜currentB
声明为struct node *currentB
吗?您尝试将一个指向结构的指针分配给该结构的实际实例(*currentB
不是指针,而是实际实例)。在这种情况下,该 call 也是错误的。
该行应为:
currentB = MultByTen(currentB);
注意缺少的
*
。我是否可以建议您尝试查找有关指针以及如何处理指针的教程?