C/C++二級指針的使用方法


在使用指針時需要特別注意,一不小心就會造成內存訪問越界,導致應用程序閃退。尤其是在使用多級指針的時候,更應該注意這個問題。下面以二級指針為例說明二級指針正確的使用方法,以及錯誤使用二級指針的示例。

 

例如:需要一個string類型的二級指針給程序使用。

1.  只為一級指針分配內存

這種方法是只為一級指針分配內存,然后將一級指針的地址賦給二級指針對象。

 

注意pstrs的值是strs的地址,因此不能使用下面的方法來訪問strs數組。

 

這樣訪問,只有在第一次循環時能訪問到strs[0]對象,之后的pstrs[1]~pstrs[4]都是非法訪問,會造成程序異常。

 

2. 為每一級指針都分配內存

這種方法是為每一級指針都分配內存,具體方法如下:

 

strs相當於一個類型std::string*長度為n的數組。因此,需要給每一個strs[i]分配內存,同時也要對每一級指針進行內存回收。下面的示例中沒有給一級指針分配內存就進行訪問,會產生異常。原因是此時還沒有給strs[i]分配內存,strs[i]存儲不一定是一個std::string類型的變量,所以會產生異常。

 

異常如下:

 


免責聲明!

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



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