Qhov txawv ntawm calloc thiab malloc

Cov txheej txheem:

Qhov txawv ntawm calloc thiab malloc
Qhov txawv ntawm calloc thiab malloc

Video: Qhov txawv ntawm calloc thiab malloc

Video: Qhov txawv ntawm calloc thiab malloc
Video: Qhov Txawv Ntawm Lus Hmoob Thiab Lus Mab Mawb 2024, Hlis ntuj nqeg
Anonim

Qhov Tseem Ceeb Qhov txawv – calloc vs malloc

Hauv kev ua haujlwm, nws yuav tsum khaws cov ntaub ntawv. Cov ntaub ntawv khaws cia hauv lub cim xeeb. Cov chaw nco no hu ua variables. Txhua qhov sib txawv muaj ib hom tshwj xeeb. Lawv tuaj yeem yog cov lej, ntab, ob npaug, cov cim thiab lwm yam. Tseem muaj cov qauv ntaub ntawv uas tuaj yeem khaws cov khoom sib txuas ntawm cov khoom ntawm tib hom. Nws yog array. Tus programmer yuav tsum tshaj tawm cov array loj. Yog tias tus programmer tshaj tawm ib qho array ntawm cov lej rau tsib lub ntsiab lus, nws tsis tuaj yeem muab tus nqi rau qhov ntsuas siab dua li qhov loj me. Lub cim xeeb faib yog tsau, thiab nws tsis tuaj yeem hloov pauv thaum lub sijhawm ua haujlwm. Lwm txoj kev faib kev nco yog dynamic memory allocation. Dynamic memory allocation pab faib ntau lub cim xeeb thaum xav tau thiab tso tawm thaum tsim nyog. Cov ntaub ntawv header muaj plaub txoj haujlwm rau kev faib lub cim xeeb dynamic. calloc thiab malloc yog ob txoj haujlwm zoo li no. Qhov sib txawv tseem ceeb ntawm calloc thiab malloc yog tias calloc faib lub cim xeeb thiab tseem pib lub cim xeeb faib rau xoom thaum malloc faib lub cim xeeb tab sis tsis pib qhov kev faib lub cim xeeb rau xoom. Kev nkag mus rau cov ntsiab lus hauv calloc yuav muab xoom, tab sis malloc yuav muab tus nqi khib nyiab.

Calloc yog dab tsi?

Memory faib yog cov txheej txheem ntawm kev muab lub cim xeeb rau cov kev ua haujlwm. Qee lub sij hawm nws yog qhov tsim nyog los hloov qhov loj ntawm lub cim xeeb. Yog li ntawd, dynamic memory allocation yog siv. Nws yog ua tiav siv cov pointers. Cov taw qhia yog cov siv sib txawv uas tuav qhov chaw nyob ntawm lwm qhov sib txawv.

Qhov txawv ntawm calloc thiab malloc
Qhov txawv ntawm calloc thiab malloc

Daim duab 01: calloc thiab malloc

calloc stands rau "kev faib sib txuas". Nws faib ntau lub cim xeeb nrog tib qhov loj. Lub syntax rau calloc yog raws li nram no. Nws yuav siv ob qhov kev sib cav. Lawv yog cov naj npawb ntawm cov blocks thiab qhov loj ntawm txhua qhov thaiv. Lub luag haujlwm calloc xa rov qab tus pointer tsis muaj dab tsi, yog li tus neeg teb xov tooj cam khwb cia yog siv los xa rov qab hom pointer raws li cov ntaub ntawv xav tau.

voidcalloc(size_t num, size_t loj);

Saib cov hauv qab no yooj yim C program.

nrog

nrog

int main(){

int ptr=(int) calloc(20, sizeof(int));

if (ptr==NULL){

printf("Nco tsis faib");

}

lse{

printf("Memory is allocated");

}

return 0;

}

Raws li cov kev pab cuam saum toj no, ib qho txuas txuas ntawm lub cim xeeb uas tuaj yeem tuav 20 lub ntsiab lus tau faib. Txhua tus yuav muaj qhov loj ntawm tus lej. Qhov loj ntawm (int) yog siv vim tias hom integer txawv ntawm compiler mus rau compiler.

Yog tias kev faib lub cim xeeb ua tiav, nws yuav rov qab qhov chaw nyob hauv paus ntawm lub cim xeeb thaiv. Nws txhais tau hais tias tus pointer ptr tam sim no taw tes rau lub hauv paus chaw nyob ntawm lub cim xeeb thaiv. Tag nrho cov cheeb tsam uas tau muab faib yog pib rau xoom. Nws yuav luam cov lus Memory Allocated. Yog tias kev faib lub cim xeeb ua tsis tiav, nws yuav rov qab tus pointer null. Yog li ntawd, nws yuav luam Memory tsis faib cov lus.

malloc yog dab tsi?

Malloc muaj nuj nqi yog siv los faib cov lej yuav tsum tau ntawm bytes hauv nco. Lub syntax rau malloc yog raws li nram no. Qhov loj me sawv cev rau lub cim xeeb uas xav tau hauv bytes.

void malloc(size_t_size);

Lub luag haujlwm malloc rov qab tus taw qhia tsis muaj dab tsi, yog li tus neeg tsav tsheb cam khwb cia siv los xa rov qab hom pointer raws li cov ntaub ntawv xav tau.

Saib cov hauv qab no yooj yim C program nrog malloc muaj nuj nqi.

nrog

nrog

int main(){

int ptr=(int) malloc (10sizeof(int));

if (ptr==NULL){

printf("Nco tsis faib");

}

lse{

printf("Memory is allocated");

}

return 0;

}

Raws li cov kev pab cuam saum toj no, thaiv kev nco yuav raug faib. Tus pointer yog taw tes rau qhov chaw nyob pib ntawm lub cim xeeb faib. Tus pointer rov qab tau hloov mus rau hom integer. Yog hais tias lub cim xeeb faib nws yuav luam lub cim xeeb yog faib cov lus. Yog tias lub cim xeeb tsis tau muab faib, tus taw qhia null yuav rov qab los. Yog li ntawd, nco tsis tau faib cov lus yuav luam tawm.

Dab tsi yog qhov zoo sib xws ntawm calloc thiab malloc?

  • Ob txoj haujlwm no tau tshaj tawm hauv cov ntaub ntawv header. Nws yog tus qauv tsev qiv ntawv header cov ntaub ntawv.
  • Ob txoj haujlwm yog siv rau kev faib lub cim xeeb dynamic.
  • Tus pointer rov qab los ntawm calloc thiab malloc yuav tsum raug muab pov rau hauv hom tshwj xeeb.
  • Nyob rau hauv kev ua tiav kev nco qab, ob qho tib si yuav rov qab tus taw tes nrog lub hauv paus chaw nyob ntawm lub cim xeeb thaiv.
  • Yog tias kev faib lub cim xeeb ua tsis tiav, tus taw qhia tsis raug yuav raug xa rov qab.

Qhov txawv ntawm calloc thiab malloc yog dab tsi?

calloc vs malloc

calloc yog lub luag haujlwm rau kev faib lub cim xeeb dynamic hauv C lus stdlib.h cov ntaub ntawv header uas faib cov lej tshwj xeeb ntawm bytes thiab pib lawv mus rau xoom. malloc yog lub luag haujlwm rau kev faib lub cim xeeb hauv C hom lus stdlib.h cov ntaub ntawv header uas faib cov lej tshwj xeeb ntawm bytes.
Meaning
calloc stands rau kev faib sib txuas. malloc stands for memory allocation.
Syntax
calloc ua raws li cov lus sib piv zoo ib yam li void calloc(size_t_num, size_t loj); malloc ua raws li cov lus sib dhos zoo ib yam li void malloc(size_t_size);.
Tus naj npawb sib cav
calloc siv ob qhov kev sib cav. Lawv yog ib tug xov tooj ntawm blocks thiab loj ntawm txhua block. malloc siv ib qho kev sib cav. Nws yog tus lej ntawm bytes.
calloc siv sijhawm ntev dua li malloc. Qhov ntawd yog vim cov kauj ruam ntxiv ntawm kev pib lub cim xeeb faib los ntawm xoom. malloc sai dua calloc.

Summary – calloc vs malloc

Nyob rau hauv lub cim xeeb zoo li qub faib xws li peb siv arrays, lub cim xeeb yog tsau. Yog tias ob peb lub ntsiab yog khaws cia, ces qhov seem ntawm lub cim xeeb yog nkim. Nws kuj tseem yuav ua rau yuam kev thaum lub cim xeeb faib me me dua li qhov xav tau. Yog li ntawd, dynamic memory allocation yog siv. Hauv C lus, calloc thiab malloc muab kev faib kev nco zoo. Qhov txawv ntawm calloc thiab malloc yog tias calloc faib lub cim xeeb thiab tseem pib lub cim xeeb blocks rau xoom thaum malloc faib lub cim xeeb tab sis tsis pib nco blocks rau xoom. Malloc siv ob qhov kev sib cav thaum calloc siv ob qhov kev sib cav.

Download PDF ntawm calloc vs malloc

Koj tuaj yeem rub tawm PDF version ntawm kab lus no thiab siv nws rau offline hom phiaj raws li daim ntawv ceeb toom. Thov rub tawm PDF version ntawm no: Qhov txawv ntawm calloc thiab malloc

Pom zoo: