In C - een programmeertaal ontwikkeld door Dennis Ritchie bij AT & T Bell Laboratories in de vroege jaren 1970 - de malloc -functie is een middel van het toewijzen van geheugen dynamisch , of in antwoord op de vraag , in plaats van in absolute termen . Soms programmeurs weten niet hoeveel geheugen nodig zullen zijn voor de gegevens op het moment dat ze het schrijven van een programma , zodat malloc hen in staat stelt om het geheugen dynamisch toe te wijzen nadat het programma is begonnen met draaien . Geheugentoewijzing Standaard is de malloc -functie kent een aaneengesloten , of grenzend , blok van het geheugen op een gebied dat bekend staat als een hoop , die kan worden geopend door een programma om gegevens en variabelen op te slaan . De malloc -functie neemt een enkel argument , een lange of 32 - bits geheel getal dat het aantal bytes vertegenwoordigt toe te wijzen van de hoop . De malloc -functie vraagt het systeem om een blok van het geheugen van het opgegeven formaat en geeft een pointer - een adres , uit het oogpunt van de programmeertaal - . Naar het eerste element van het blok < br > Return Value Computers hebben slechts een beperkte hoeveelheid geheugen , dus het is mogelijk om de malloc -functie om meer geheugen vragen dan fysiek beschikbaar is en veroorzaken een programma crasht . Als dat niet genoeg geheugen beschikbaar is , malloc geeft een null pointer , of een pointer met een waarde van nul . Om een programma te voorkomen dat crashen , moeten programmeurs expliciet testen of malloc is niet teruggekeerd null , zodat ze weten dat de gevraagde geheugen succes werd toegewezen voordat u probeert om het te gebruiken . Releasing Geheugen Evenzo kan een computer niet voortdurend wijzen meer en meer geheugen - en herhaaldelijk overschrijven van een pointer die wijst naar dynamisch toegewezen geheugen kan leiden tot data ontoegankelijk . Dynamisch toegewezen geheugen moet dus weer worden vrijgegeven voor het systeemgeheugen zwembad , met behulp van de gratis functie , zodra het niet langer nodig is . Zodra een proces beëindigt , alle dynamisch toegewezen geheugen wordt terug vrijgegeven aan de geheugen-pool . Syntax Malloc terug een generieke pointer , of een verwijzing naar ongeldig , maar de aanwijzer worden getypt of typeren , het type gegevens waarop wijst geven . De syntax " char * str = ( char * ) malloc ( 40 ) ," bijvoorbeeld , geheugen toewijst voor een string 40 tekens lang . Als alternatief kunnen programmeurs verklaren een pointer en roepen malloc wanneer ze willen om ruimte te maken voor de elementen in een array . Het is echter belangrijk op te merken dat de malloc -functie kent alleen het geheugen . Het doet niet leeg of anderszins initialiseer het geheugen van het toewijst .
|