我想分配下面定义的嵌套数据结构,只用一次 malloc 调用。在 C 中有可能吗?如果可以,我该怎么做?
struct s1 {
int a;
int b;
char ns1[16];
};
struct s2 {
struct s1 *ps1;
int i;
int j;
char ns2[16];
};
最佳答案
这不是嵌套结构,因为 ps1
是指针,不是结构。
malloc()
可以很好地处理指针。您可以毫无问题地分配 s2
。但是您必须将 ps1
成员指向有效的内容。
嵌套结构看起来更像这样:
struct s2 {
struct s1 x_s1;
int i;
int j;
char ns2[16];
};
malloc()
也应该没问题。
关于c - 如何仅通过一次 malloc 调用来分配嵌套数据结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25634203/