Malloc en calloc zijn twee memory management functies in de " C " programmeertaal . Programma's niet nodig om gebieden van het geheugen behouden , want dat is meestal de verantwoordelijkheid van het besturingssysteem . Deze twee functies zijn niet vaak gebruikt en zijn alleen nodig voor die programma's die niet kunnen rekenen op standaard memory management processen . " C " Programming Language " C " is al lang een favoriete taal voor netwerking programmering en file handling . Het is een moeilijke taal om te leren , omdat de zoekwoorden zijn veel meer gecodeerde en minder als echte taal dan andere talen , zoals COBOL , Pascal of Java . " C " is nauw verbonden met het Unix-besturingssysteem . In feite is Unix geschreven in " C " Hoewel Unix zijn eigen scripttaal , " C " is de overheersende taal voor het programmeren Unix - gebaseerde diensten . Zoals het toewijzen van geheugen is nauw verwant aan besturingssystemen , malloc en calloc hebben meer kans om te vinden in lage -diensten in " C " geprogrammeerd dan in client geconfronteerd toepassingen hoog niveau . Memory Management a " C " -programma is een lijst van mensen leesbare instructies die niet kan worden uitgevoerd op een computer . Het programma moet worden samengesteld , die een kopie van het programma genereert in machine - leesbare code . Besturingssystemen meestal toewijzen geheugen locaties om de variabelen en de instructies in het programma op het moment dat het programma wordt samengesteld . Variabelen zijn tijdelijke opslagruimte voor tijdens het verloop van het programma run . Malloc en calloc bieden een methode om toewijzing van geheugenadressen te stellen tot het programma draait . Dit heet dynamisch geheugenbeheer . Malloc en calloc Zowel malloc en calloc wijzen een ruimte in heap geheugen naar het programma . Elke functie geeft een pointer naar de eerste toegewezen geheugen adres en alle andere geheugenblokken moeten aaneengesloten zijn. Als het systeem niet over het beschikbare geheugen , beide functies terug null . Beide functies behouden geheugen voor zowel integer of karakter data . In elk geval moet het geheugenblok grootte een veelvoud van de voor dit gegevenstype formaat . Daarom is het gebruikelijk om de sizeof ( ) functie in de parameterlijst zowel malloc en calloc de blokgrootte argument dat de gevraagde geheugen is een veelvoud van het bedoelde data . < br > Vergelijking Malloc neemt een argument en wijst een blok van het gewenste formaat . Calloc neemt twee argumenten , die het aantal blokken nodig zijn en de vereiste omvang voor elk blok . Daarom wordt malloc geacht bruikbaar te zijn voor een variabele en calloc is beter geschikt voor het toewijzen van geheugen voor een serie - die verschillende elementen bevat . Malloc niet initialiseren de gevraagde geheugengebied , terwijl calloc nul vult het.
|