Forskjellene i malloc og Calloc

Forskjellene i malloc og Calloc


Malloc og calloc er to minnehåndtering funksjoner i "C" programmeringsspråk. Programmer ikke trenger å reservere områder av minne, fordi det vanligvis er ansvarlig for operativsystemet. Disse to funksjonene er ikke ofte brukt, og er bare nødvendig for de programmene som ikke kan stole på standard minnestyringsprosesser.

"C" Programming Language

"C" har lenge vært et yndet språk for nettverksbygging programmering og filhåndtering. Det er et vanskelig språk å lære, fordi dens søkeord er mye mer kodet og mindre som ekte språk enn andre språk som COBOL, Pascal eller Java. "C" er nært knyttet til Unix-operativsystemet. Faktisk er Unix skrevet i "C." Selv Unix har sitt eget skriptspråk, "C" er utbredt språk for programmering Unix-baserte tjenester. Som minnetildeling er nært knyttet til operativsystemer, malloc og calloc er mer sannsynlig å bli funnet i lave nivå tjenester programmert i "C" enn i klienten overfor høyt nivå applikasjoner.

Minnehåndtering

En "C" -programmet er en liste over lesbar instruksjoner som ikke kan kjøres på en datamaskin. Programmet må være utarbeidet, noe som genererer en kopi av programmet i maskinlesbar kode. Operativsystemer vanligvis tildele minneplasser til variablene og instruksjoner i programmet på det tidspunktet programmet er kompilert. Variabler er en midlertidig lagringsplass for data i løpet av programkjøringen. Malloc og calloc gi en metode for å utsette tildeling av minneadresser til programmet kjører. Dette kalles dynamisk minnehåndtering.

Malloc og Calloc

Både malloc og calloc tildele en plass i heap minne til programmet. Hver funksjon returnerer en peker til den første tildelte minneadresse og alle andre minneblokker skal være sammenhengende. Hvis systemet ikke har ledig minne, begge funksjonene returnerer null. Begge funksjoner reserve minne for enten heltall eller tegndata. I hvert tilfelle bør minneblokkstørrelsen være et multiplum av den størrelse som kreves for den datatypen. Derfor er det vanlig praksis å bruke sizeof () -funksjonen innenfor parameterliste for både malloc og calloc for blokkstørrelsen argument for å sikre at den ønskede størrelsen på minnet er et multiplum av den tilsiktede datatype.

Sammenligning

Malloc tar ett argument og tildeler en blokk av ønsket størrelse. Calloc tar to argumenter, som er antall blokker som kreves og den nødvendige størrelse for hver blokk. Av denne grunn er malloc bedømt til å være nyttig for en enkelt variabel, og calloc er bedre egnet til å tildele minne for en gruppe - som inneholder flere elementer. Malloc ikke initialisere den forespurte minneområdet, mens calloc null fyller det.