在同一结构中声明一个结构数组

时间:2016-11-02 17:35:08

标签: c++ arrays struct

我不是肯定的,这甚至是可能的,但我基本上试图在其中定义一个具有相同结构的数组的结构,如此

struct Node {
    int numMatches = 0;
    Node* leaves[26] = {};
};

每个节点都包含一个固定长度的指向其他节点(表示字母)的指针数组。我正试图通过这些节点进行递归,在需要时进入相关的叶子。我会初始化一个“头”节点*数组并向下冒泡。这是立即断言,我可以看出为什么会这样 - 它不知道分配给这样的结构数组的内存量。不太确定如何解决问题。

非常简单的问题,但我没有找到任何具有同样问题的C ++ / C特定线程。

谢谢!

1 个答案:

答案 0 :(得分:1)

struct中,您没有使用same struct的数组,而是使用pointers to the same struct的数组 - 这会产生不同。

Pointers 已知长度(例如32位操作系统中的32位),无论他们指向哪个对象,所以你的结构只是分配(可能)

  • 32位= mumMatches
  • 的4个字节
  • 26 * 32位= 26 * 4字节= leaves

    的104字节
  • 共108个字节