連結器與載入器與執行檔格式

將行程的堆積與堆疊配置成中間隔著寬廣的空閒區域、朝相反方向延伸,其優點為下列何者?

  1. A即使事先不知道兩者各要使用多少,也能彈性地共同分配空閒區域
  2. B堆積與堆疊可同時使用相同的位址,因此記憶體變成兩倍
  3. C堆疊絕對不會再溢位
查看答案與解析

正確答案:A. 即使事先不知道兩者各要使用多少,也能彈性地共同分配空閒區域

堆積朝位址大的方向延伸,堆疊朝位址小的方向延伸,因此中間的空閒區域不論是大量使用堆積的程式,或是大量使用堆疊的程式,都能運用。若為各自分配固定大小,可能一方還有剩餘,另一方卻已溢位。不過堆疊多半設有上限,過深的遞迴超過上限就會造成堆疊溢位(stack overflow)。

  • A. 正確。可有效運用虛擬位址空間。
  • B. 無法同時使用相同的位址。
  • C. 遞迴過深等情況下,堆疊仍會溢位。
練習這個領域 前往領域頁面

連結器與載入器與執行檔格式的其他題目

  1. 關於靜態連結,下列說明何者正確?
  2. 關於動態連結(共用函式庫)的優點,下列何者正確?
  3. 將使用動態連結的程式複製到另一部電腦上執行,卻無法啟動。最可能的原因為下列何者?
  4. 與靜態函式庫(.a檔)一起連結時,連結器會嵌入執行檔的是下列何者?
  5. 使用GNU連結器時,若像「gcc -lmylib main.o」這樣,將靜態函式庫寫在使用它的目的檔之前,有時會出現未定義參照的錯誤。下列關於其原因的敘述何者正確?

這個領域的比較