民國104年 第2梯次 電腦軟體設計(C++)乙級 學科
第55題
若p 1 為一個陣列指標,欲釋放陣列記憶空間,下列寫法何者是正確?
題目
若p 1 為一個陣列指標,欲釋放陣列記憶空間,下列寫法何者是正確?
- (1) d e l e t e [ ] p 1 ;
- (2) d e l e t e p 1 [ ] ;
- (3) d e l e t e * p 1 ;
- (4) d e l e t e p 1 ;
官方答案
(1) d e l e t e [ ] p 1 ;
解析
C++ 中以 new[] 配置的陣列,必須成對使用 delete [] 釋放,正確寫法為 delete [] p1;。方括號指示編譯器對每個元素呼叫解構函式並釋放整塊陣列記憶體。若只用 delete p1;(選項 4)只釋放單一物件,對陣列會導致未定義行為與資源漏失;delete p1[](選項 2)與 delete *p1(選項 3)均非合法語法。因此釋放陣列記憶空間應寫 delete [] p1;,選 1。
AI 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。