指针的深拷贝

在对指针进行操作时经常会涉及到指针的拷贝,一般来讲指针的拷贝分为两种:深拷贝与浅拷贝。两者之间使用不当会造成很恶劣的影响。下面实例说明:

我们先设定一个字符串指针s,假设其指向内存的内容是“adfsdfsf”,记该存储区域为M,那么我们得知,s指针所指向区域M。若我们的用指针p对其内容进行浅拷贝,那么我们得到了另一个指向M的指针,即p=s,此时p和s的作用相同,指向内存也相同,所不同的只是名字罢了。若我们对p指针指向的内容进行操作,那么s指针所指向的内容也会发生相应的改变,反之亦然。

若对s进行深拷贝,比如利用函数memcpy,该操作是将s的内存内容赋给p,此时虽然内存区域的内容是相同的,但p和s是两个指向两个不同内存区域的指针,对p或s的分别操作都不会影响到对方。

posted @ 2019-07-25 11:01  runsdeep  阅读(3531)  评论(0编辑  收藏  举报