如何在结构数组中访问特定指针?

时间:2014-03-21 02:18:50

标签: c++ arrays pointers struct structure

我有一个带有两个指针的结构,我存储在相同类型的数组中。我不确定如何访问数组的每个特定索引中的指针。

class List 
{
public:
 List();

private:
 struct L_Node
  {
    L_Node *next;
    L_Node *prev;
    int     iValue;  // not actually doing anything in this example
  }

 L_Node head[4];
 L_Node tail[4];
}

在构造函数中,我希望head [0]接下来指向tail [0] next,head [1]接下来是tail [1] next,依此类推,* prev指向尾巴到头部形成双重链表。对于head,prev = NULL,而tail next = NULL。在head和tail数组之间,我试图拥有一些L_Node的动态实例。

截至目前,在我的构造函数中,我有

head->next = new L_Node;
head->prev = NULL;

tail->next = NULL;
tail->prev = new L_Node;

head->next->next = tail;
tail->prev->prev = head;

它编译,但我不确定它是如何表现的。 head [0]是否通过动态结构指向tail [0],依此类推?

提前感谢您提供任何帮助或提示。

编辑:

是指针的typedef,例如

typedef L_Node *L_Ptr;

有帮助吗?

1 个答案:

答案 0 :(得分:0)

根据您的说明,这是您在List的构造函数中所需要的:

List::List()
{
   for (int i = 0; i != 4; ++i )
   {
      head[i].next = tail[i];
      tail[i].prev = head[i];
   }
}

我会在L_Node中添加一个构造函数,以便为其成员数据提供合理的初始值。

L_Node() : next(NULL), prev(NULL), iValue(0) {}