0

2 つの構造体があり、1 つはリンク リストです。

typedef struct Mark{
       int  people;
       Node *nodeyy;
}Mark

typedef struct Node{
       struct node next;
       int value;
}Node

ノードにメモリを割り当てたとしましょう

 Node *node1=malloc( sizeof(struct Node));

また、ブックマーク用のメモリも割り当てました。

 Mark *mark1=malloc( sizeof(struct Mark));

mark1 のポインター nodeyy が node1 と同じものを指すようにしたいのですが、どうすればよいですか?

と思います

 mark1->nodeyy=node1;

は間違いなく間違っています。

4

2 に答える 2

1

その正しい今:

ポインターを初期化するか、範囲外にならないことがわかっている既存の変数を指す必要があります。しかし、node1 は動的に割り当てられるため、あるポインタを別のポインタに割り当てるだけです。これにより、node1 が指す新しく割り当てられたメモリへの一種の参照が作成されます。

mark1->nodeyy = node1;

このステートメントの後、mark1->nodeyy と node1 は、malloc(sizeof(Node)) によって返されたメモリ位置を指します。

于 2012-10-20T07:14:51.807 に答える
1

struct Mark の int* を Node* に変更します

typedef struct Mark{
       int  people;
       Node *nodeyy;
}Mark

それからあなたはすることができます

mark -> nodeyy =  (Node *) malloc(sizeof(Node))
于 2012-10-20T07:17:12.327 に答える