В C ++ есть перегруженный конструктор копирования и перегрузка присваивания для глубокой копии.Так как по умолчанию доступна мелкая копия.
В C структура, имеющая член-указатель, если передана функции или назначена уже созданному новому объекту структуры, является глубокой или мелкой копией ??
Например,
struct data {
int a;
int *b;
};
void test_func(struct data tes)
{
tes.a =3;
int *c = new int[1];
c[0]=2;
tes.b =c;
std::cout<<*tes.b;
}
int main() {
struct data test;
int *c = new int;
*c=4;
test.a = 1;
test.b =c;
std::cout<<*test.b;
test_func(test);
std::cout<<*test.b;
}