我是新来的,很抱歉没有提供我应该得到的所有信息,但是这里有。
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'时出现的不兼容类型”来自我旁边的注释的那一行代码。 我正在返回一个struct node *所以我不知道为什么我会收到这个错误。有什么想法吗?
- 编辑: currentB是一个包含数据的链表。它是
struct node* currentB = malloc(sizeof(struct node));
出于示例的目的,它是1-> 2-> 3-> 4-> NULL并且我想要的MultByTen只是在列表的末尾添加0以便它将变为1→2→3→4-> 0→NULL
答案 0 :(得分:1)
我猜currentB
被宣称为struct node *currentB
?您尝试将指向结构的指针分配给结构的实际实例(*currentB
不是指针而是实际实例)。在这种情况下,呼叫也是错误的。
该行应为:
currentB = MultByTen(currentB);
请注意缺少*
。
我可以建议您尝试查找有关指针及其处理方式的教程吗?