• 深拷贝_浅拷贝


    深拷贝,拷贝内存的内容,旧结构体发生变化,新结构体也会变化。

    浅拷贝,直接地址复制,共享内存,新旧结构体互补影响。

     1 #define _CRT_SECURE_NO_WARNINGS
     2 
     3 #include <stdio.h>
     4 #include <stdlib.h>
     5 #include <string.h>
     6 
     7 struct string
     8 {
     9     char *p;
    10     int length;
    11 };
    12 
    13 main1()
    14 {
    15     struct string str1;
    16     str1.length = 10;
    17     str1.p = (char *)malloc(sizeof(char) * 10);
    18     strcpy(str1.p, "hello");
    19 
    20     printf("str1.p=%s
    ", str1.p);
    21 
    22     struct string str2;//浅拷贝,共享内存
    23     str2.length = str1.length;
    24     str2.p = str1.p;
    25     *(str1.p) = 'k';
    26 
    27     printf("str1.p=%s
    ", str1.p);
    28     printf("str2.p=%s
    ", str2.p);
    29 
    30     system("pause");
    31 }
    32 
    33 main()
    34 {
    35     struct string str1;
    36     str1.length = 10;
    37     str1.p = (char *)malloc(sizeof(char) * 10);
    38     strcpy(str1.p, "hello");
    39 
    40     printf("str1.p=%s
    ", str1.p);
    41 
    42     struct string str2;//深拷贝
    43     str2.length = str1.length;
    44     str2.p = (char *)malloc(sizeof(char) * 10);
    45     strcpy(str2.p, str1.p);
    46 
    47     printf("str1.p=%s
    ", str1.p);
    48     printf("str2.p=%s
    ", str2.p);
    49 
    50     system("pause");
    51 }
  • 相关阅读:
    TestNG
    K近邻算法
    Python解决乱码问题
    Log4J 配置
    多线程死锁
    hadooplzo安装出错的解决方法
    B树
    设计模式
    整数序列化
    Maven
  • 原文地址:https://www.cnblogs.com/denggelin/p/5571156.html
Copyright © 2020-2023  润新知