结构体嵌套多层结构体指针怎么malloc?

struct{inta1;inta2[100];}A;struct{intB1;intcountA;structA*a;}B;struct{intc1;structAa;... struct
{
int a1;
int a2[100];
}A;
struct
{
int B1;
int countA;
struct A *a;
}B;

struct
{
int c1;
struct A a;
int countB;
struct B *b;
}C;
结构体指针多层嵌套,如何malloc给结构体C分配内存
展开
 我来答
自我编程
2019-01-26 · 科技优质答主
自我编程
采纳数:1481 获赞数:4283

向TA提问 私信TA
展开全部
嵌套的结构也是成员变量啊。成员变量是指针就先malloc成员变量就行了。这和我们写结构链表的*next指针是一个道理啊。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友c9635ea
2019-01-25 · TA获得超过170个赞
知道小有建树答主
回答量:200
采纳率:42%
帮助的人:24万
展开全部
程序中有一个结构体指针,我想拷贝一份,建立一个新的结构体指针变量,并且分配内存。
可是结构体里面嵌套了多层结构体指针,这样分配内存好麻烦,一层一层的,也怕漏掉。
有没有什么好的办法进行这种结构体指针的深度拷贝?主要是嵌套太多层。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2019-01-25
展开全部

比较好的方式是嵌套调用,...嗯,类似初始化函数.

struct A *get_A(){
    return (struct A *)malloc(sizeof(A));
}
struct B *get_B(){
    struct B *tmp = (struct B *)malloc(sizeof(B));
    tmp->a = get_A();
    return tmp;
}
struct C *get_C(){
    struct C *tmp = (struct C *)malloc(sizeof(C));
    tmp->b = get_B();
    return tmp;
}

差不多就这样,当然你也可以展开,

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
l7722526
2019-01-26 · TA获得超过2.7万个赞
知道大有可为答主
回答量:2.8万
采纳率:84%
帮助的人:3843万
展开全部
//在结构体中只保存指针 #define BUFFER_TITLE 256 #define BUFFER_INFO 4096 typedef struct tagInfo { char* szTitle; char* szInfo; } INFO, *LPINFO; LPINFO pInfo = (LPINFO)malloc(sizeof(INFO)); //分配结构体内存 pInfo->szTitle = (char*)malloc(sizeof(BUFFER_TITLE)*sizeof(char)); pInfo->szInfo = (char*)malloc(sizeof(BUFFER_INFO)*sizeof(char));
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式