C动态分配内存块

时间:2012-10-21 06:00:02

标签: c arrays memory-management linked-list

这是我的数据结构

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

如果我分配内存

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

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

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

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

也许这令人困惑,抱歉我的措辞......

3 个答案:

答案 0 :(得分:1)

这会为您提供10个Node的数组,可通过A访问。现在,您所要做的就是例如。

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

设置第一个节点的next值。

答案 1 :(得分:0)

malloc返回void*然后您应该为您的类型[{1}}

投出它

Node*

答案 2 :(得分:0)

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