假设现在有如下的数据结构:
struct Data
{
char *data;
int size;
}
注意赋值运算符不能直接用于上述结构体的赋值,这主要是因为Data含有指针data,这个指针与两个空间有关,第一个是是指针本身的空间,第二个是它只想的动态数组空间,在复制中,我们要求这两个空间分别复制复制,称之为深复制。
但是结构变量在赋值运算符下,对指针成员只能传递指针本身空间的值,不能复制指针指向的空间的值,我们称之为浅复制。
本文探讨了数据结构在赋值操作中的深复制与浅复制概念,特别是对于包含指针成员的结构体,阐述了如何正确地进行复制以避免潜在的问题。
假设现在有如下的数据结构:
struct Data
{
char *data;
int size;
}
注意赋值运算符不能直接用于上述结构体的赋值,这主要是因为Data含有指针data,这个指针与两个空间有关,第一个是是指针本身的空间,第二个是它只想的动态数组空间,在复制中,我们要求这两个空间分别复制复制,称之为深复制。
但是结构变量在赋值运算符下,对指针成员只能传递指针本身空间的值,不能复制指针指向的空间的值,我们称之为浅复制。

被折叠的 条评论
为什么被折叠?