C/C++深度copy和浅copy

时间:2022-05-05
本文章向大家介绍C/C++深度copy和浅copy,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
#define  _CRT_SECURE_NO_WARNINGS

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

/*
   深拷贝: 拷贝方和被拷贝方不共享一片内存
   浅拷贝: 拷贝方和被拷贝方共享一片内存
*/
typedef struct Stu {

    int len;
    char *ps;
}stu;
int main(int args , char * argv []) {
    
    stu sa, sb;
    sa.ps = (char *)malloc(sizeof(char )*10);
    strcpy(sa.ps,"hello");
    printf("sa.ps=%sn",sa.ps);
    sb.ps = (char *)malloc(sizeof(char) * 10);
    //sb.ps = sa.ps;    --浅copy 
    strcpy(sb.ps , sa.ps);  //--深copy
    printf("sb.ps=%sn",sb.ps);
    *sa.ps = 'Z';
    printf("%sn",sb.ps);
    getchar();
    return 0;
}