malloc og calloc er to memory management funktioner i "C" programmeringssprog. Programmer behøver ikke at reservere områder hukommelse, fordi det er normalt ansvarlig for operativsystemet. Disse to funktioner er ikke særligt udbredt , og er kun nødvendig for de programmer, der ikke kan regne på standard hukommelse management processer . "C" Programming Language
"C" har længe været et yndet sprog til networking programmering og filhåndtering . Det er et svært sprog at lære , fordi dens søgeord er langt mere kodet og mindre som rigtigt sprog end andre sprog som COBOL , Pascal eller Java . " C" er tæt knyttet til Unix-operativsystemet . Faktisk er Unix skrevet i " C " Selvom UNIX har sit eget scriptsprog , "C" er det fremherskende sprog til programmering Unix - baserede tjenester . Som allokering af hukommelse er tæt forbundet med 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
"C" -program er en liste over læsbare instruktioner , der ikke kan køres på en computer . Programmet 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, hvor programmet er kompileret . Variabler er en midlertidig lagerplads til data i løbet af programmets løb. Malloc og calloc tilvejebringe en metode til at forsinke tildeling af hukommelse adresser indtil programmet kører . Dette kaldes dynamisk hukommelse ledelse.
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 sammenhængende. Hvis systemet ikke har den tilgængelige hukommelse , begge funktioner returnerer null . Begge funktioner forbeholder hukommelse til enten heltal eller tegndata . I hvert tilfælde bør hukommelsen blokstørrelse være et multiplum af den størrelse, der kræves for denne datatype . Derfor er det almindelig praksis at anvende sizeof ( ) funktion i parameter liste for både allokere og calloc for blokken størrelse argumentet at sikre, at den ønskede hukommelse størrelse er et multiplum af den tilsigtede datatype .
< br > Sammenligning
malloc tager ét argument og tildeler en blok af de ønskede størrelse. Calloc tager to argumenter , som er antallet af krævede blokke, og den krævede størrelse for hver blok. Af denne grund er allokere skønnes at være nyttig for 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 det.