指針的深拷貝


在對指針進行操作時經常會涉及到指針的拷貝,一般來講指針的拷貝分為兩種:深拷貝與淺拷貝。兩者之間使用不當會造成很惡劣的影響。下面實例說明:

我們先設定一個字符串指針s,假設其指向內存的內容是“adfsdfsf”,記該存儲區域為M,那么我們得知,s指針所指向區域M。若我們的用指針p對其內容進行淺拷貝,那么我們得到了另一個指向M的指針,即p=s,此時p和s的作用相同,指向內存也相同,所不同的只是名字罷了。若我們對p指針指向的內容進行操作,那么s指針所指向的內容也會發生相應的改變,反之亦然。

若對s進行深拷貝,比如利用函數memcpy,該操作是將s的內存內容賦給p,此時雖然內存區域的內容是相同的,但p和s是兩個指向兩個不同內存區域的指針,對p或s的分別操作都不會影響到對方。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM