Brok

Een brok is een memory block resident in de Heap


Compositie

Elk blok is opgebouwd uit een kop van constante grootte 8 bytes gevolgd door een spatie van variabelengeheugen, waarvan de minimumgrootte is hetzelfde als voor de header en groeit de volgorde van zijn veelvouden:


Chunk toegewezen

Het schema voor de vertegenwoordiging van reeds in het geheugen toegewezen één stuk is als volgt:

  • prev_size: het bevat informatie over de brok vrij voor
  • maat: het de grootte bevat in bytes van de hele brok
  • gebruikersgegevens: gebied van geheugen beschikbaar voor de gebruiker


Chunk gratis

Het schema voor de weergave van een enkele brok geheugen beschikbaar is als volgt: De functies van prev_size en grootte niet veranderen, behalve dat in plaats user_data een waarde lengte gelijk is aan 0 bytes veronderstellen.

  • FD pointer: wijzer naar de volgende vrije brok
  • BK pointer: pointer naar vorige brok vrij

Werken met brokken

In de C-programmeertaal beheer stuk is via twee basisfuncties:

  • malloc toewijzing brok
  • gratis brok vrijmaken


Toewijzing

Voor verdeling verwijst naar de handeling ruimte te reserveren in het geheugen, om in te bewaren gegevens nodig voor de goede werking van het programma.

Een voorbeeld van een code deel voor de toewijzing van een stuk met user_data gelijk aan 128 bytes kan zijn de volgende:

We moeten niet vergeten dat de regels voor de samenstelling van een stuk, het commando malloc resulteren in een stuk van 16 bytes.


Vrijmaken

Voor vrijmaken is de handeling van het vrijmaken van ruimte in het geheugen eerder toegewezen, en daarom is het herbruikbaar voor latere toewijzingen.

LET OP: Het niet vrijmaken van een stuk na het gebruik ervan is de belangrijkste oorzaak van geheugenlekken

(0)
(0)
Commentaren - 0
Geen reacties

Voeg een Commentaar

smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile
Tekens over: 3000
captcha