C 中的交叉引用结构

标签 c pointers struct reference

有没有办法创建两个相互引用的结构? 示例:

struct str1
{
  struct str1* ptr1;
  struct str2* ptr2;
}

struct str2
{
  struct str1* ptr1;
  struct str2* ptr2;
}

最佳答案

struct str2; // put a forward reference to str2 here

struct str1
{
  struct str1* s1;
  struct str2* s2;
};

struct str2
{
  struct str1* s1;
  struct str2* s2;
};

int main()
{
  struct str1 s1;
  struct str2 s2;

  s1.s1 = &s1;
  s1.s2 = &s2;
  s2.s1 = &s1;
  s2.s2 = &s2;

  return 0;
}

关于C 中的交叉引用结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20341335/

相关文章:

iphone - 尝试将 NSUInteger 与枚举一起使用 (<<)

sql - 在 Go 中控制指针

c - 删除第一个数字时出现段错误

c - 尝试从二叉搜索树中删除节点时获取 SEGFAULT

C++ 设置结构体数组中的元素 = NULL

c - 执行 malloc 时程序崩溃

c - getc 在文件结束后应该停止时正在打印垃圾

c - 有没有办法动态设置从 fgets() 获得的字符串的大小?

c++ - 函数结构指向其他结构的其他函数

c++ - C++ 中的结构和类