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

以C語言的malloc配置的記憶體,一般是從行程的哪個區域取得?

  1. A.text區段
  2. B堆積
  3. C.rodata區段
查看答案與解析

正確答案:B. 堆積

堆積是在程式執行中配置所需大小的記憶體,不需要時再以free歸還的區域。其特徵是配置的大小與生命週期可在執行時決定。malloc會自行管理空閒區域,不足時再請求作業系統擴大區域(在Linux中是brk或mmap系統呼叫)。若忘了free,就會殘留不再使用的記憶體,形成記憶體洩漏(memory leak)。

  • A. .text是機器碼的區域,無法寫入。
  • B. 正確。是只配置執行中所需份量的區域。
  • C. .rodata是禁止寫入的常數區域。
練習這個領域 前往領域頁面

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

  1. 將Linux等一般行程的記憶體配置,由位址小的一側依序排列,下列何者正確?
  2. 將行程的堆積與堆疊配置成中間隔著寬廣的空閒區域、朝相反方向延伸,其優點為下列何者?
  3. 關於靜態連結,下列說明何者正確?
  4. 關於動態連結(共用函式庫)的優點,下列何者正確?
  5. 將使用動態連結的程式複製到另一部電腦上執行,卻無法啟動。最可能的原因為下列何者?

這個領域的比較