1

这是我的数据结构

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

如果我分配内存

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

在这种情况下,如何使用数组索引访问数组中的每个框?还是不可能?

我的目标只是想在这块内存中创建一个链表。

基本上我想分配一块内存,然后分配他们的上一个和下一个......

也许这令人困惑,对不起我的措辞..

4

3 回答 3

1

这为您提供了一个 10 s 的数组Node,可通过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

以您的方式分配许多节点可能对内存管理有效,但我不会像数组一样访问它们。我认为你应该依赖链表而不是混合这两种方法,因为它很容易导致难以追踪和修复的错误。

于 2012-10-21T06:14:34.237 回答