关于C语言结构体的赋值(复制)问题

首先我对C还是非常不了解,大婶们看看我这思路对不对?

就是想知道,结构体A和结构体B内都有结构体C,结构体B内的结构体C是从结构体B赋值过来的,如果之后结构体A被释放了,结构体B有没有影响。

应该就是深复制,浅复制的问题吧。

我用下面的代码试了一下,认为应该是直接复制了内存过来。

#include <stdio.h>
#include <malloc.h>

typedef struct _ss1
{
    int a;
    int b;
}ss1;
typedef struct _ss2
{
    ss1 asd;
    int c;
}ss2;
typedef struct _ss3
{
    ss1 qwe;
    int d;
}ss3;
int main()
{
	ss2 *bb2 = (ss2 *)malloc(sizeof(ss2));
    bb2->asd.a = 12;
    bb2->asd.b = 21;
    bb2->c  = 121;
    ss3 *bb3 = (ss3 *)malloc(sizeof(ss3));
    bb3->qwe = bb2->asd;
    bb3->d = 34;
    printf("%d\n", bb3->qwe.a);
    printf("%d\n", bb3->qwe.b);
    bb2->asd.a = 45;
    bb2->asd.b = 54;
    //free(bb2);
    printf("%d\n", bb3->qwe.a);
    printf("%d\n", bb3->qwe.b);
    return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值