4 c struct pointers memory-management
对不起,如果问题不明确; 我发现用一句话很难解释.
假设我有一个struct
成员struct
,例如以下内容:
struct A {
struct B b;
};
Run Code Online (Sandbox Code Playgroud)
让我们说我打算总是将这个结构的实例分配给堆.通过改变它可以获得什么?(即保持指针到struct B
)
struct A {
struct B *b;
};
Run Code Online (Sandbox Code Playgroud)
在后一种情况下,我有一对夫妇的功能,如make_A
和free_A
这将需要分配和取消分配内存的护理指向b
;
我可以想到第二种形式可能更可取的唯一例子是,并非所有实例struct A
都会实际使用b
.在这种情况下,可以通过仅为需要它的那些实例分配额外的内存来保存内存.
是否有其他情况下第二种形式提供了有用的东西?