malloc()-funksjon i C-bibliotek med EKSEMPEL

Hva er malloc i C?

Malloc()-funksjonen står for minneallokering. Det er en funksjon som brukes til å tildele en minneblokk dynamisk. Den reserverer minneplass av spesifisert størrelse og returnerer null-pekeren som peker til minneplasseringen. Pekeren som returneres er vanligvis av typen void. Det betyr at vi kan tilordne malloc-funksjon til enhver peker.

syntax

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_size.
Example: ptr = (int *) malloc (50)

Når denne setningen er utført, er en minneplass på 50 byte reservert. Adressen til den første byten med reservert plass er tilordnet pekeren ptr av typen int.

Tenk på et annet eksempel 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));
    }
}

Utgang:

Value of the 6th integer is 480

Hva er malloc i C

  1. Legg merke til det sizeof(*ptr) ble brukt i stedet for størrelse på (int) for å gjøre koden mer robust når *ptr-deklarasjonen typecastes til en annen datatype senere.
  2. Tildelingen kan mislykkes hvis minnet ikke er tilstrekkelig. I dette tilfellet returnerer den en NULL-peker. Så du bør inkludere kode for å se etter en NULL-peker.
  3. 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 lagret av pekeren.

Malloc-funksjonen kan også brukes med karakterdatatypen så vel som komplekse datatyper som strukturer.