malloc() Funktion i C-bibliotek med EXEMPEL
Vad är malloc i C?
Funktionen malloc() står för minnesallokering. Det är en funktion som används för att tilldela ett minnesblock dynamiskt. Den reserverar minnesutrymme av specificerad storlek och returnerar nollpekaren som pekar till minnesplatsen. Pekaren som returneras är vanligtvis av typen void. Det betyder att vi kan tilldela malloc-funktion till vilken pekare som helst.
syntax
ptr = (cast_type *) malloc (byte_size);
Här,
- ptr är en pekare av cast_type.
- Malloc-funktionen returnerar en pekare till det tilldelade minnet av byte_size.
Example: ptr = (int *) malloc (50)
När denna sats exekveras framgångsrikt, reserveras ett minnesutrymme på 50 byte. Adressen för den första byten av reserverat utrymme tilldelas pekaren ptr av typen int.
Tänk på ett annat exempel på malloc-implementering:
#include <stdlib.h> int main(){ int *ptr; ptr = malloc(15 * sizeof(*ptr)); /* a block of 15 integers */ if (ptr != NULL) { *(ptr + 5) = 480; /* assign 480 to sixth integer */ printf("Value of the 6th integer is %d",*(ptr + 5)); } }
Produktion:
Value of the 6th integer is 480
- Lägg märke till att sizeof(*ptr) användes istället för sizeof(int) för att göra koden mer robust när *ptr-deklarationen typcastas till en annan datatyp senare.
- Tilldelningen kan misslyckas om minnet inte räcker till. I det här fallet returnerar den en NULL-pekare. Så du bör inkludera kod för att leta efter en NULL-pekare.
- Tänk på att det tilldelade minnet är sammanhängande och det kan behandlas som en array. Vi kan använda pekaritmetik för att komma åt arrayelementen istället för att använda parenteser [ ]. Vi rekommenderar att du använder + för att hänvisa till arrayelement eftersom användning av inkrementering ++ eller += ändrar adressen som lagras av pekare.
Malloc-funktionen kan också användas med teckendatatypen såväl som komplexa datatyper som strukturer.