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

第55題

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

題目

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

  1. (1) delete [] p1;
  2. (2) delete p1[];
  3. (3) delete *p1;
  4. (4) delete p1;

官方答案

(1) delete [] p1;

解析

C++ 中以 new[] 配置的陣列,必須成對使用 delete [] 釋放,正確寫法為 delete [] p1;。方括號指示編譯器對每個元素呼叫解構函式並釋放整塊陣列記憶體。若只用 delete p1;(選項 4)只釋放單一物件,對陣列會導致未定義行為與資源漏失;delete p1[](選項 2)與 delete *p1(選項 3)均非合法語法。因此釋放陣列記憶空間應寫 delete [] p1;,選 1。

AI 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。

官方資料