C程序结构错误从int分配类型struct node

时间:2011-11-18 09:11:01

标签: c struct compiler-errors incompatibility

我是新来的,很抱歉没有提供我应该得到的所有信息,但是这里有。

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

1 个答案:

答案 0 :(得分:1)

我猜currentB被宣称为struct node *currentB?您尝试将指向结构的指针分配给结构的实际实例(*currentB不是指针而是实际实例)。在这种情况下,呼叫也是错误的。

该行应为:

currentB = MultByTen(currentB);

请注意缺少*

我可以建议您尝试查找有关指针及其处理方式的教程吗?