这是我的数据结构
struct Node{
int x;
Node *next;
Node *prev;
}
如果我分配内存
Node *A = malloc (sizeof (Node) * 10);
在这种情况下,如何使用数组索引访问数组中的每个框?还是不可能?
我的目标只是想在这块内存中创建一个链表。
基本上我想分配一块内存,然后分配他们的上一个和下一个......
也许这令人困惑,对不起我的措辞..
这是我的数据结构
struct Node{
int x;
Node *next;
Node *prev;
}
如果我分配内存
Node *A = malloc (sizeof (Node) * 10);
在这种情况下,如何使用数组索引访问数组中的每个框?还是不可能?
我的目标只是想在这块内存中创建一个链表。
基本上我想分配一块内存,然后分配他们的上一个和下一个......
也许这令人困惑,对不起我的措辞..
这为您提供了一个 10 s 的数组Node
,可通过A
. 现在,您所要做的就是例如
A[0].next = &A[1];
设置next
第一个节点的值。
malloc
返回void*
然后你应该为你的类型转换它Node*
Node *A = (Node *)malloc (sizeof (Node) * 10);
以您的方式分配许多节点可能对内存管理有效,但我不会像数组一样访问它们。我认为你应该依赖链表而不是混合这两种方法,因为它很容易导致难以追踪和修复的错误。