Linker, loader en uitvoerbare formaten

Uit welk gebied van het proces wordt het met malloc in C gereserveerde geheugen in het algemeen genomen?

  1. ADe .text-sectie
  2. BDe heap
  3. CDe .rodata-sectie
Antwoord en toelichting tonen

Antwoord: B. De heap

De heap is het gebied waar tijdens uitvoering van het programma geheugen van de benodigde grootte wordt gereserveerd en met free wordt teruggegeven als het niet meer nodig is. Kenmerkend is dat grootte en levensduur tijdens uitvoering kunnen worden bepaald. malloc beheert zelf het vrije gebied en vraagt bij tekort het OS het gebied uit te breiden (op Linux met de systeemaanroepen brk of mmap). Als men vergeet free uit te voeren, blijft ongebruikt geheugen bestaan: een geheugenlek.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Linker, loader en uitvoerbare formaten

  1. Welke volgorde van de geheugenindeling van een gangbaar proces op Linux en dergelijke, van laag naar hoog adres, is juist?
  2. Welk voordeel is juist van de indeling waarin heap en stack van een proces in tegengestelde richting groeien met ertussen een breed vrij gebied?
  3. Welke omschrijving van statisch linken is juist?
  4. Welk voordeel van dynamisch linken (gedeelde bibliotheken) is juist?
  5. Een dynamisch gelinkt programma werd naar een andere computer gekopieerd en uitgevoerd, maar startte niet. Wat is de meest waarschijnlijke oorzaak?

Vergelijkingen bij dit onderwerp