c++ - 在定义结构之前如何使用指向结构的指针?

标签 c++ c memory memory-management struct

我很难理解这段代码是如何工作的。我一直认为在使用指向结构的指针之前,应该定义它。在下面的示例中,为什么编译器不提示 struct LL* Next ?

typedef struct LL
{
    int value;
    **struct LL* Next;**
}Node;

Node* temp;

最佳答案

在你的代码中,

 struct LL* Next;

允许作为 struct LL 定义本身内部的成员并且不会抛出任何错误,因为此时编译器不需要知道结构本身的定义。它只需要分配一个指向该结构的指针,它就可以了。

稍后,在使用 struct 类型的变量时,您必须为指针对象分配内存,并在进一步使用之前将该内存分配给指针。

关于c++ - 在定义结构之前如何使用指向结构的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36553376/

相关文章:

c++ - 在 Emacs 中使用 gdb : always show the source code

c - 在 C 中序列化数据结构

c - C中的这个循环有什么问题?

c - 在 L1 缓存 : only getting 62% 中获取 Haswell 上的峰值带宽

C++ 重载运算符 << 让我做噩梦

c++ - 从文件读取到二叉树并写入文件

java - 打开堆转储所需的内存.hprof

Node.JS Dynamodb put 内存问题

c++ - 计算第 n 个加泰罗尼亚数

c++ - 为什么具有随机数生成功能的 OpenMP 比串行代码慢