1

私はここで新しいので、必要な助けを得るために必要なすべての情報を提供しなかったことをお詫びしますが、ここに行きます。

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;
}

横にコメントがあるコードの1行から、「エラー:タイプ'int'からタイプ'structnode'に割り当てるときに互換性のないタイプ」が表示されます。構造体ノード*を返しているので、なぜこのエラーが発生するのかわかりません。何か案は?

-編集:currentBは、データが含まれているリンクリストです。

struct node* currentB = malloc(sizeof(struct node));

例として、1-> 2-> 3-> 4-> NULLであり、MultByTenが必要なのは、リストの最後に0を追加するだけなので、1->2->3になります。 -> 4-> 0-> NULL

4

1 に答える 1

1

私は推測currentBしているように宣言されていstruct node *currentBますか?構造体の実際のインスタンス(*currentBポインタではなく実際のインスタンス)にポインタを割り当てようとします。この場合、呼び出しも間違っています。

行は次のようになります。

currentB = MultByTen(currentB);

欠落していることに注意してください*

ポインタとその処理方法に関するチュートリアルを探すことをお勧めしますか?

于 2011-11-18T09:16:09.290 に答える