一、深拷贝示例
1、浅拷贝问题
在上一篇博客 【C++】深拷贝和浅拷贝 ③ ( 浅拷贝内存分析 ) 中 , 使用了浅拷贝 , 将 原始对象 Students 赋值给了 拷贝对象 Student s2 ;...使用 C++ 编译器 生成的 默认的拷贝构造函数 进行对象赋值 , 该拷贝是 浅拷贝 ;
使用浅拷贝被出现了两个问题 :
浅拷贝 导致 两个对象持有相同的指针 , 修改 拷贝对象 指针指向的数据 ,...指向的 字符串长度 , 使用 strlen 函数测量指针指向的堆内存的大小 ;
// 获取字符串长度
int len = strlen(s.m_name);
然后 , 为 对象的成员变量 m_name...m_name = (char*)malloc(len + 1);
最后 , 使用 strcpy 函数 , 拷贝字符串内容 , 在 C++ 中需要添加 添加 #define _CRT_SECURE_NO_WARNINGS...成员分配内存
// 注意还要为字符串结尾的 '\0' 字符分配内存
m_name = (char*)malloc(len + 1);
// 拷贝字符串
// C++ 中使用该函数需要