指针 深拷贝 和浅拷贝
时间: 2023-10-17 09:24:51 浏览: 80
08_26_C++ 深浅拷贝的区别
指针是一种存储变量内存地址的变量类型。在使用指针时,可能会涉及到深拷贝和浅拷贝的概念。
浅拷贝是指将一个对象的指针赋值给另一个对象,这样两个对象指向同一块内存地址,修改其中一个对象的值也会影响另一个对象的值。例如:
```
int* ptr1 = new int(10);
int* ptr2 = ptr1; // 浅拷贝
```
在上面的例子中,ptr1和ptr2指向同一块内存地址,修改其中一个指针指向的值会影响另一个指针。
深拷贝是指将一个对象的指针所指向的内存地址的值复制到另一个对象的指针指向的内存地址中,这样两个对象指向不同的内存地址,修改其中一个对象的值不会影响另一个对象的值。例如:
```
int* ptr1 = new int(10);
int* ptr2 = new int(*ptr1); // 深拷贝
```
在上面的例子中,ptr1和ptr2指向不同的内存地址,修改其中一个指针指向的值不会影响另一个指针。
需要注意的是,在使用深拷贝时,需要手动释放新申请的内存空间,避免内存泄漏。
阅读全文