阿摩線上測驗 登入

申論題資訊

試卷:100年 - 100 關務特種考試_四等_資訊處理:程式語言概要#27097
科目:程式語言
年份:100年
排序:0

題組內容

三、許多程式語言的編譯器將程式所需使用的資料分別放在不同區域:(1)固定區(static)、 (2)堆疊區(stack)和(3)堆積區(heap)。(20 分)

申論題內容

⑵分別舉例說明那些資料最適合存放在那個區域。

詳解 (共 2 筆)

詳解 提供者:114年高考上榜

固定區:適合存放程式中的全域變數、靜態變數和常量等,這些資料在程式運行期間始終存在,不需要動態分配或釋放記憶體空間。

 
堆疊區:適合存放函數的局部變數、函數參數、函數調用的返回地址和運行時堆疊等,這些資料的生命週期通常隨著函數的執行而開始和結束,需要在適當的時候自動釋放記憶體空間。
 
堆積區:適合存放需要動態分配的資料,例如使用 new 或 malloc 函數所分配的記憶體空間。堆積區的空間大小可以在運行時動態分配和釋放,但需要注意避免記憶體洩漏和資料競爭等問題。
 
以下是一些具體的例子:
 
整型變數、字符型變數等基本資料型態的變數可以存放在堆疊區或固定區,它們的生命週期通常是短暫的,不需要動態分配記憶體空間。
字串、陣列等需要動態分配記憶體的資料可以存放在堆積區,它們的大小通常不固定,需要在運行時動態分配和釋放記憶體空間。
函數的返回值、參數和運行時堆疊等資料可以存放在堆疊區,它們的生命週期隨著函數的執行而開始和結束,需要在適當的時候自動釋放記憶體空間。
靜態變數、全域變數和常量等資料可以存放在固定區,它們的生命週期通常與程式的運行週期相同,不需要動態分配和釋放記憶體空間。
詳解 提供者:hchungw
固定區(Static Segment):適合存放全域變數、靜態變數和常數。這些變數在整個程式的執行期間保持有效。
堆疊區(Stack Segment):適合存放函數的局部變數和參數。這些變數在函數調用期間分配,在函數返回時釋放。
堆積區(Heap Segment):適合存放動態分配的資料結構和需要跨函數或模組使用的資料。這些變數的生命週期由程式設計者手動管理。