gpt4 book ai didi

c++ - 在同一结构中声明一个结构数组

转载 作者:行者123 更新时间:2023-11-30 05:21:06 25 4
gpt4 key购买 nike

我不确定这甚至是可能的,但我基本上是在尝试定义一个结构,里面有一个相同结构的数组,就像这样

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

每个节点都包含一个固定长度的指向其他节点(代表字母)的指针数组。我试图通过这些节点进行递归,在需要时进入相关的叶子。我会初始化一个“头”节点* 数组并以这种方式冒泡。它立即出现段错误,我明白为什么会这样——它不知道要为此类结构的数组分配多少内存。虽然不太确定如何解决问题。

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

谢谢!

最佳答案

在您的 struct 中,您没有使用 same struct 的数组,而是使用 pointers to the same struct 的数组 -这很重要。

指针具有已知长度(例如 32 位操作系统中的 32 位)无论它们指向什么对象,所以你的结构简单地分配(可能)

  • 32 位 = 4 个字节用于 mumMatches
  • 26 * 32 位 = 26 * 4 字节 = 104 字节用于叶子


  • 一共108个字节

关于c++ - 在同一结构中声明一个结构数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40386264/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com