Hva er Malloc i C?
Malloc () -funksjonen står for minnetildeling. Det er en funksjon som brukes til å fordele en blokk med minne dynamisk. Den reserverer minneplass av spesifisert størrelse og returnerer nullpekeren som peker til minneplasseringen. Pekeren som returneres er vanligvis ugyldig. Det betyr at vi kan tildele malloc-funksjon til hvilken som helst peker.
Syntaks
ptr = (cast_type *) malloc (byte_size);
Her,
- ptr er en peker av cast_type.
- Malloc-funksjonen returnerer en peker til det tildelte minnet til byte_størrelse.
Example: ptr = (int *) malloc (50)
Når denne utsagnet er utført, er det lagret et minne på 50 byte. Adressen til den første byten med reservert plass tildeles pekeren ptr av typen int.
Tenk på et annet eksempel på implementering av malloc:
#includeint 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));}}
Produksjon:
Value of the 6th integer is 480
- Legg merke til at sizeof (* ptr) ble brukt i stedet for sizeof (int) for å gjøre koden mer robust når * ptr-erklæringen blir typecastet til en annen datatype senere.
- Tildelingen kan mislykkes hvis minnet ikke er tilstrekkelig. I dette tilfellet returnerer den en NULL-peker. Så du bør ta med kode for å se etter en NULL-peker.
- Husk at det tildelte minnet er sammenhengende, og det kan behandles som en matrise. Vi kan bruke pekeraritmetikk for å få tilgang til matriseelementene i stedet for å bruke parenteser []. Vi anbefaler å bruke + for å referere til matriseelementer fordi bruk av inkrementering ++ eller + = endrer adressen som er lagret av pekeren.
Malloc-funksjonen kan også brukes med karakterdatatypen så vel som komplekse datatyper som strukturer.