Sur*_*tel 3 c c++ memory struct memory-management
我很难理解这段代码是如何工作的.我总是在使用指向结构的指针之前想到它应该被定义.在下面的例子中为什么编译器不抱怨struct LL*Next?
typedef struct LL
{
int value;
**struct LL* Next;**
}Node;
Node* temp;
Run Code Online (Sandbox Code Playgroud)
在你的代码中,
struct LL* Next;
Run Code Online (Sandbox Code Playgroud)
允许作为struct LL定义本身内的成员,并且不会抛出任何错误,因为在那时,编译器不需要知道结构本身的定义.它只需要分配一个指向结构的指针,因此它可以.
稍后,在使用struct类型的变量时,您必须为指针对象分配内存,并在进一步使用之前将该内存分配给指针.