民國104年 第2梯次 電腦軟體設計(C++)乙級 學科

第55題

若p 1 為一個陣列指標,欲釋放陣列記憶空間,下列寫法何者是正確?

題目

若p 1 為一個陣列指標,欲釋放陣列記憶空間,下列寫法何者是正確?

  1. (1) d e l e t e [ ] p 1 ;
  2. (2) d e l e t e p 1 [ ] ;
  3. (3) d e l e t e * p 1 ;
  4. (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 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。

官方資料