司法三等申論題
105年
[檢察事務官電子資訊組] 程式語言
第 五 題
程式執行過程常會產生啟動記錄(activation record),請解釋什麼是 activation record。若有一 C 副程式,其參數(parameter)與區域變數(local variables)如下,請以圖示說明其 activation record。(20 分)
void fun1( int x, float y)
{ float data[3];
int count;
float total;
. . .
}
📝 此題為申論題
思路引導 VIP
看到「activation record(啟動記錄)」,應直覺聯想到程式執行時的「堆疊框架(Stack Frame)」。解題時先給出精確定義與記憶體配置時機,接著依照 C 語言的呼叫慣例(Calling Convention),畫出包含參數、返回位址、Dynamic Link 及區域變數的堆疊結構圖,並確保標出給定程式碼中所有變數的位置。
🤖
AI 詳解
AI 專屬家教
【破題】 「啟動記錄(Activation Record)」,又稱為堆疊框架(Stack Frame),是編譯器在執行期間為了管理副程式(Function/Procedure)的呼叫與返回,而於執行時期堆疊(Runtime Stack)上配置的一塊連續記憶體空間。 【論述】
▼ 還有更多解析內容