有 2 个 struct
定义 A
和 A
。我知道 struct A
可以包含指向 struct A
的 POINTER 但我不明白为什么 struct A
不能包含struct A
(不是指针)
最佳答案
因为当您将结构放在彼此内部时,您就是在那个位置将那个结构的另一个副本放入结构中。例如:
struct A {
int q;
int w;
};
struct B {
int x;
struct A y;
int z;
};
这将像这样在内存中布局:
int /*B.*/x;
int /*A.*/q;
int /*A.*/w;
int /*B.*/z;
但是如果你试图把一个结构放在它自己里面:
struct A {
int x;
struct A y;
};
你有一个 A,它包含一个 int 和另一个 A,它包含一个 int 和另一个 A,现在你有无限多个 int。
关于c - "struct inside struct"中的限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39647548/