gpt4 book ai didi

c - 为什么结构不能成为其自身的成员?

转载 作者:太空宇宙 更新时间:2023-11-04 01:30:48 25 4
gpt4 key购买 nike

我有一个结构foo。声明类型为 foo* 的成员有效:

typedef struct foo
{
struct foo* children[26];
} foo;

但是如果我尝试声明类型为 foo 的成员,我会得到一个错误:

typedef struct foo
{
struct foo children[26];
} foo;

这个声明给我错误

definition of 'struct foo' is not complete until the closing '}'

最佳答案

结构 T 不能包含自身。你怎么知道它的大小?这样做是不可能的,因为 T 的大小需要您知道 T 的大小(因为 T 包含另一个 T).这变成了无限递归。

您可以在结构 T 中有一个指向 T 的指针,因为指针的大小与指向的对象的大小不同:在这种情况下,您只需存储存储另一个 T 的内存地址 - 您需要做的所有空间基本上就是存储另一个 T 的内存地址所需的空间生活。

关于c - 为什么结构不能成为其自身的成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22881616/

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