LONGEPASS
電腦軟體設計(C++)/C++/Q111
中等
正確率 -
Q111.

C++語言程式設計師釋放不用的記憶體空間,下列那些為正確?

電腦軟體設計(C++) · 乙級 · C++ · Q111

難易度分析

3 / 5

本題採多選形式,要求考生必須完整辨析多種記憶體釋放機制及其適用的語言環境,且需區分手動管理與自動回收的差異,在認知判斷上比單一答案題目更為複雜。

正確答案 (複選):①, ③

  • ① 使用delete 來釋放記憶體:delete 是 C++ 中用於釋放由 new 動態配置的記憶體之運算子,會先呼叫物件的解構函式再釋放記憶體空間,為 C++ 標準的記憶體管理方式。
  • ③ 使用free 來釋放記憶體空間:free() 是繼承自 C 語言的標準函式,用於釋放由 malloc()、calloc() 或 realloc() 配置的記憶體。在 C++ 中仍可搭配使用,但不會呼叫物件的解構函式。

錯誤選項解析

  • ② 使用System.gc()來釋放記憶體:System.gc() 是 Java 語言中建議 JVM 執行垃圾回收的方法,C++ 並無此機制。C++ 採用手動記憶體管理,不具備自動垃圾回收功能。
  • ④ 不用管它,編譯器會自動處理:C++ 的動態記憶體(heap 配置)不會由編譯器自動釋放,程式設計師必須手動管理。若未正確釋放將導致記憶體洩漏(Memory Leak),僅有區域變數(stack 配置)會在作用域結束時自動釋放。
Learning Tip

"此題核心考點為 C++ 的手動記憶體管理機制。常考陷阱在於混淆 new/delete(C++ 運算子,會呼叫解構函式)與 malloc/free(C 函式,不呼叫解構函式)的配對使用,兩者不可交叉混用。另外需特別注意 C++ 與 Java 的垃圾回收機制差異:C++ 無自動 GC,程式設計師需對每一筆 new/malloc 的配置負責釋放,實務上建議優先使用 智慧指標(smart pointers) 如 unique_ptr 或 shared_ptr 來避免記憶體洩漏。"

學員答題分佈

①使用delete 來釋放記憶體0%
②使用System.gc()來釋放記憶體0%
③使用free 來釋放記憶體空間0%
④不用管它,編譯器會自動處理0%

此答題分佈是根據學員在 LongePass 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!

相似類型題目