malloc i C: Dynamic Memory Allocation in C Explained
Hva er Malloc () i C?
malloc () er en biblioteksfunksjon som gjør at C kan allokere minne dynamisk fra dyngen. Haugen er et minneområde hvor noe lagres.
malloc () er en del av stdlib.h og for å kunne bruke den må du bruke #include
.
Hvordan bruke Malloc
malloc () tildeler minne av en ønsket størrelse og returnerer en peker til begynnelsen av den tildelte blokken. For å holde denne returnerte pekeren, må vi opprette en variabel. Pekeren skal være av samme type som brukes i malloc-setningen.
Her vil vi lage en pekepinn til en snart rekke matter
int* arrayPtr;
I motsetning til andre språk kjenner C ikke datatypen den tildeler minne til; det trenger å bli fortalt. Heldigvis har C en funksjon som heter sizeof()
vi kan bruke.
arrayPtr = (int *)malloc(10 * sizeof(int));
Denne påstanden brukte malloc for å sette av minne for en rekke med 10 heltall. Siden størrelser kan endres mellom datamaskiner, er det viktig å bruke størrelsen på () -funksjonen for å beregne størrelsen på den gjeldende datamaskinen.
Alt minne som tildeles under programutførelsen, må frigjøres før programmet avsluttes. Til free
minne kan vi bruke gratis () -funksjonen
free( arrayPtr );
Denne erklæringen vil distribuere minnet som tidligere er tildelt. C kommer ikke med garbage collector
som noen andre språk, for eksempel Java. Som et resultat vil minne som ikke er ordentlig frigjort fortsette å tildeles etter at programmet er lukket.
Før du går videre ...
En anmeldelse
- Malloc brukes til dynamisk minnetildeling og er nyttig når du ikke vet hvor mye minne som trengs i kompileringstiden.
- Tildeling av minne lar objekter eksistere utenfor omfanget av den nåværende blokken.
- C går forbi verdi i stedet for referanse. Å bruke malloc til å tilordne minne, og deretter overføre pekeren til en annen funksjon, er mer effektivt enn å få funksjonen til å gjenskape strukturen.
Mer informasjon om C-programmering:
- Nybegynnerhåndboken for C-programmering
- Hvis ... annet uttalelse i C forklart
- Ternær operatør i C forklart