我看到了关于这个主题的几个问题,.But,我的查询不能是resolved.Links:
Structure memory allocation,Allocating memory for nested structure pointer,Understanding Nested Structures
基本上,内存是在创建结构实例时分配的,而不是在定义结构实例时分配的。那么,如果我在这个结构中创建了另一个结构的对象,比如这样的东西:
struct a{
int c;
};
struct b
{
struct a obj;
};
现在,当我们在struct a
对象中声明它时,内存是否被分配给它呢?(我们也可以通过指针来实现它,但是如果我们这样做呢)。
发布于 2017-07-17 21:39:45
在您的示例中,struct b
也是(另一个)声明,与struct a
一样。
这里没有内存分配。编译器需要知道,如果定义了这种类型的变量,需要分配多少内存。仅仅因为一个结构的一个成员是另一个结构,并不意味着必须在那里分配内存。一旦您有了该类型的变量,就会进行内存分配。
这里唯一要注意的是,内部结构类型必须在作为外部类型的成员之前声明。
https://stackoverflow.com/questions/45158364
复制相似问题