C++中可用new和delete關鍵字分配和釋放內存,但是如果遇到指針數組(或指向指針的指針),分配和釋放必須慎重,不然容易造成內存泄漏。
下面用一段代碼給出如何使用指向指針的指針來分配和釋放內存:
int n; cin>>n; //分配內存 char** pStrArray = new char*[n]; for (int i=0;i<n;i++) { pStrArray [i] = new char[5]; cin>>pStrArray [i]; } doOperator(pStrArray);//對字符串數組進行操作 //釋放內存 for (int i=0;i<n;i++) { delete []pStrArray[i]; } delete pStrArray;
可以看出,分配內存時和一次指針沒啥區別,注意好類型里多個指針符號就行,但是在釋放內存時,需要先釋放各個元素指向的內存,並在變量名前加“[]”,表示釋放的是指針數組,最后釋放指針數組名指向的內存。