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