Forskellene i malloc og calloc

June 22

Forskellene i malloc og calloc


Malloc og calloc er to memory management funktioner i "C" programmeringssprog. Programmer behøver ikke at reservere områder af hukommelse, fordi det er normalt ansvarlig for operativsystemet. Disse to funktioner er ikke ofte brugt og kun er nødvendige i de programmer, der ikke kan stole på standard hukommelse processer.

"C" Programming Language

"C" har længe været et yndet sprog til netværk programmering og filhåndtering. Det er et svært sprog at lære, fordi dens søgeord er langt mere kodet og mindre som rigtig sprog end andre sprog som COBOL, Pascal eller Java. "C" er tæt forbundet med UNIX-styresystemet. Faktisk er Unix skrevet i "C." Selvom Unix har sit eget scriptsprog, "C" er det fremherskende sprog til programmering Unix-baserede tjenester. Som hukommelse tildeling er tæt knyttet til operativsystemer, malloc og calloc er mere sandsynligt at finde i lave niveau tjenester programmeret i "C" end i klient står højt niveau applikationer.

Memory Management

A "C" program er en liste over menneskeligt læsbare instruktioner, der ikke kan køres på en computer. Programmet har der skal udarbejdes, som genererer en kopi af programmet i maskinlæsbar kode. Operativsystemer normalt afsætte hukommelsespladser til de variabler og instruktioner i programmet på det tidspunkt programmet er kompileret. Variabler er en midlertidig lagerplads til data i løbet af programmet køre. Malloc og calloc tilvejebringe en metode til at forsinke tildelingen af ​​hukommelsesadresser indtil programmet kører. Dette kaldes dynamisk hukommelsesstyring.

Malloc og calloc

Både malloc og calloc allokere en plads i bunke hukommelse til programmet. Hver funktion returnerer en pointer til den første allokerede hukommelse adresse og alle andre hukommelse blokke bør være tilgrænsende. Hvis systemet ikke har den tilgængelige hukommelse, begge funktioner returnere null. Begge funktioner reserve hukommelse til enten heltal eller karakter data. I hvert tilfælde bør den lagerblok størrelse være et multiplum af den størrelse, der kræves for den pågældende datatype. Derfor er det almindelig praksis at bruge funktionen sizeof () i parameter liste for både malloc og calloc for blokken størrelse argument for at sikre, at den ønskede hukommelse er et multiplum af den påtænkte datatype.

Sammenligning

Malloc tager et argument, og tildeler en blok af den ønskede størrelse. Calloc tager to argumenter, som er antallet af blokke, der kræves, og den nødvendige størrelse for hver blok. Af denne grund er malloc vurderes at være egnede til en enkelt variabel, og calloc er bedre egnet til fordeling hukommelse til et array - som indeholder flere elementer. Malloc ikke initialisere den ønskede hukommelse området, mens calloc nul fylder den.


relaterede artikler