1

ここに私のデータ構造があります

struct Node{
      int x;
      Node *next;
      Node *prev;
}

メモリを割り当てると

Node *A = malloc (sizeof (Node) * 10);

この場合、配列インデックスを使用して配列内の各ボックスにアクセスするにはどうすればよいですか? またはそれは不可能ですか?

私の目標は、このメモリのチャンクでリンクされたリストを作成したいだけです。

基本的に、メモリのブロックを割り当ててから、それらの前と次を割り当てたい....

多分それは紛らわしいです、私の言葉遣いで申し訳ありません..

4

3 に答える 3

1

Nodeこれにより、からアクセスできる10の配列が得られますA。今、あなたがしなければならないのは例えば

A[0].next = &A[1];

next最初のノードの値を設定します。

于 2012-10-21T06:04:45.583 に答える
0

malloc返さvoid*れた場合は、タイプにキャストする必要がありますNode*

Node *A = (Node *)malloc (sizeof (Node) * 10);

于 2012-10-21T06:09:08.407 に答える
0

あなたのやり方で多くのノードを割り当てると、メモリ管理には効率的かもしれませんが、配列のようにそれらにアクセスすることはありません。リンクされたリストに依存し、2 つの方法を混在させないでください。追跡が困難で、修正が困難なバグが発生しやすいためです。

于 2012-10-21T06:14:34.237 に答える