malloc og calloc er to minnehåndtering funksjoner i "C" programmeringsspråk. Programmer ikke trenger å reservere deler av hukommelsen , fordi det er vanligvis ansvaret operativsystemet. Disse to funksjonene er ikke mye brukt og er bare nødvendig for de programmene som ikke kan stole på standard minne styringsprosesser. "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 om Unix har sitt eget skriptspråk , "C " er utbredt språk for programmering av Unix - baserte tjenester . Som minne allokering 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øye nivå applikasjoner .
Memory Management
A " C "-programmet er en liste over lesbar instruksjoner som ikke kan kjøres på en datamaskin . Programmet må kompileres , som genererer en kopi av programmet i maskinlesbar kode . Operativsystemer som regel fordele minneplasser til variablene og instruksjoner i programmet på den tiden programmet er kompilert . Variablene er en midlertidig lagringsplass for data i løpet av programmet løp. Malloc og calloc gir 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 minnet adresse og alle andre minneblokker bør være sammenhengende . Hvis systemet ikke har tilgjengelig minne , begge returnerer null . Begge funksjonene forbeholder minne for enten heltall eller tegn data . I hvert tilfelle bør den minneblokk størrelse være et multiplum av den størrelse som kreves for at datatypen . Derfor er det vanlig praksis å bruke sizeof ( )-funksjonen i parameter liste for både malloc og calloc for blokken størrelse argument for å sikre at den forespurte størrelsen på minnet er et multiplum av den tiltenkte 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 ønsket størrelse for hver blokk . Av denne grunn er malloc bedømt til å være nyttige for en enkelt variabel , og calloc er bedre egnet til å tildele minne for en matrise - som inneholder flere elementer. Malloc initialiserer ikke den forespurte minneområdet , mens calloc null fyller det .