c - 返回未初始化的结构位置

标签 c struct tree malloc

如果我有一棵树,并且我需要在该树中找到一个基本上为空的特定节点(该结构尚未初始化/分配)。

如果我想返回那个非常具体的未初始化结构位置以便能够初始化它,会是这样的:

if (parentNode->childNode == NULL)
    return parentNode->childNode;

工作?或者它会返回NULL?我需要返回父节点吗?

我遇到的问题是这个特定节点可能是多个不同结构类型的子节点。我不知道如何在 C 中克服这个问题,因为它不支持泛型。有人有什么想法吗?

最佳答案

不能返回 NULL。它不会是一个可识别的位置。

但是你可以做的是:

  • malloc 找到它的节点并返回 malloc 返回的指针,
  • 你可以返回&(parentNode->childNode)(指向childNode指针的指针),调用者 该函数可用于将其设置为新节点,或者
  • 返回父节点

我不明白如何通过泛型来缓解这个问题。

关于c - 返回未初始化的结构位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13003257/

相关文章:

c - 获取 i386 架构下 BusyBox 的 gdb 二进制文件

c - 使用互斥锁时, "printf"输出两次(或更多?我不确定)?

改变线程执行的函数

不透明结构的 C typedef 编码风格

c++ - 在 C++ 自定义树的一些迭代后崩溃

C 预处理器库

c - 使用磁盘数据结构时最好的方法是什么

c++ - 可变类/结构结构? (不是模板也不是 union ?)

java - 明智地打印树级别

algorithm - 按字典序生成所有N个节点的二叉树