Libreng Memorya sa C na may Libreng Pag-andar

Free Memory C With Free Function



Ang wika ng C ay sapat na mahusay upang hawakan ang pamamahala ng memorya nito. Nangangahulugan ito na tuwing idedeklara mo ang isang regular na variable ng anumang uri ng data sa C, ang wika ng programa mismo ang responsable para sa deallocating o ilabas ang memorya na ito kapag ang iyong programa ay matagumpay na naisakatuparan. Gayunpaman, sa kaso ng pag-alala ng pabagu-bago ng memorya, dahil inilalaan mo nang manu-mano ang memorya, iyon ang dahilan kung bakit kailangan mo ring palabasin ito nang mag-isa.

Sa stdlib.h library, mayroong isang nakatuong pagpapaandar para sa paghahatid ng hangaring ito, ibig sabihin, ang libreng () pagpapaandar. Ngayon, susuriin namin ang pangangailangan na gamitin ang pagpapaandar na ito sa wika ng C programa. Pagkatapos nito, titingnan namin ang ilang mga halimbawa kung saan ang pagpapaandar na ito ay ginamit upang palayain ang memorya nang manu-mano sa C programming language sa Linux.







Kailangan ng paggamit ng Libreng Pag-andar sa C para sa Paglaya ng Memory ng System:

Alam nating lahat na ang aming mga computer system ay may limitadong memorya, dahil dito hindi tayo maaaring magpatakbo ng mga walang katapusang programa dito. Sa kaso ng awtomatikong paglalaan ng memorya, nangangalaga ang computer na palayain ang memorya kapag natapos na ang pagpapatupad ng iyong programa. Gayunpaman, kapag inilalaan namin ang memorya nang manu-mano mula sa bunton, kailangan naming palayain ito mula sa isang paraan o iba pa.



Kung hindi man, sa kalaunan ay mawawalan kami ng memorya, at hindi na namin tatakbo ang aming mga programa nang higit pa. Dito naglalaro ang libreng () pag-andar ng stdlib.h library. Ginagamit namin ang pagpapaandar na ito sa pagtatapos ng isang programa bago mismo ang pahayag sa pagbabalik upang ang memorya ng magbunton ay dapat ibalik sa computer system bago matapos ang iyong programa.



Ipagpalagay na patuloy mong hindi papansinin ang pagpapaandar na ito habang sinusulat ang iyong mga C code na partikular na naka-target patungo sa pag-alok ng pabagu-bago ng memorya. Sa kasong iyon, darating ang isang punto kung hindi mo ma-access ang iyong tambak nang mas malayo dahil mauubusan ito ng memorya. Iyon ang dahilan kung bakit ang tila hindi gaanong mahalagang pag-andar na ito ay hindi dapat kalimutan tuwing kinukuha mo ang responsibilidad ng alokasyon ng memorya nang pabago-bago.





Ang pangkalahatang syntax ng libreng () pag-andar sa wika ng C programa ay ang mga sumusunod:

walang bisalibre (walang bisa*ptr)

Dito, ang walang bisa na keyword bago ang libreng () pag-andar ay nagsasaad na ang uri ng pagbabalik ng pagpapaandar na ito ay walang bisa. Ang pointer sa loob ng mga braket ay tumutugma sa lokasyon ng memorya na kailangang palitan ng pansin. Ang sumusunod na seksyon ay maglalarawan ng ilang mga halimbawa kung saan ang libreng () pagpapaandar ay ginamit para sa pagpapalabas ng pabuong memorya na nakuha sa C.



Mga halimbawa ng Paggamit ng Libreng Pag-andar sa C:

Ang libreng () pagpapaandar ay maaaring magamit sa lahat ng tatlong mga pag-andar ng paglalaan ng memorya ng stdlib.h library, ibig sabihin, malloc, calloc, at realloc. Ito ay sapilitan na gamitin ang pagpapaandar na ito matapos na sabihin ang pangunahing pag-andar ng iyong programa upang maibigay mo ang memorya ng magbunton na dinamiko mong inilalaan sa panahon ng pagpapatupad ng programa pabalik sa iyong computer system. Ngayon, tingnan natin ang ilang mga halimbawa kung saan ang libreng () pag-andar ay ginamit sa malloc at calloc function sa C programa ng wika.

Halimbawa # 1: Paggamit ng Libreng Pag-andar na may calloc sa C:

Ang C code para sa paggamit ng libreng () function na may calloc () na pagpapaandar ay naibahagi sa imahe sa ibaba:

Ang pangunahing layunin ng code na ito ay upang magtalaga ng ilang memorya nang pabago-bago sa tulong ng pagpapaandar ng calloc (). Para doon, kinuha namin ang laki ng pabagu-bago na memorya at ang mga halaga ng pabuong memorya na ito bilang input mula sa gumagamit. Pagkatapos, nilayon naming i-print ang nakuha na mga halaga sa terminal. Matapos ang buong code na ito, mayroon kaming libreng () pagpapaandar na magpapalabas ng inilalaan na pabagu-bagong memorya dahil sa pagpapatupad ng aming C program.

Ang isang bahagyang nabago na bersyon ng parehong code ay ipinapakita rin sa imaheng nabanggit sa ibaba:

Ang binagong bersyon na ito ay inilaan lamang upang mai-print ang aming pabagu-bago na inilalaang mga halaga ng memorya bago ang manu-manong pagsisimula nito. Alam namin na ang calloc () na function ay nagpapasimula ng buong memorya na may mga zero bago mangyari ang aktwalisasyon. Gayunpaman, ang pangunahing punto na mapapansin dito sa code na ito ay na kahit na ang code na ito ay medyo compact at simple, gumawa pa rin kami ng libreng () pagpapaandar sa sandaling ang nais na pag-andar ay nakamit lamang upang palabasin ang heap memory na mayroon kami nakuha bilang isang resulta ng pagpapatupad ng C program na ito.

Halimbawa # 2: Paggamit ng Libreng Pag-andar na may malloc sa C:

Ang C code para sa paggamit ng libreng () function na may malloc () na pagpapaandar ay naibahagi sa larawang naidugtong sa ibaba:

Ang pangunahing layunin ng code na ito ay upang magtalaga ng ilang memorya nang pabago-bago sa tulong ng pagpapaandar ng malloc (). Para doon, itinalaga namin ang mga halaga ng pabuong memorya na ito sa isang para sa loop. Pagkatapos, nilayon naming i-print ang nakuha na mga halaga sa terminal sa tulong ng isa pa para sa loop. Matapos ang buong code na ito, mayroon kaming libreng () pag-andar bago mismo ang pahayag sa pagbabalik na magpapalabas lamang ng inilalaan na pabuong memorya bilang resulta ng pagpapatupad ng aming C program.

Konklusyon:

Binigyang diin ng artikulong ito ang kahalagahan ng paggamit ng libreng () pag-andar sa wika ng C programa sa Linux. Karamihan sa mga gumagamit ay naniniwala na ang mga pagpapaandar ng paglalaan ng stdlib.h file ay mas mahalaga; gayunpaman, sa pamamagitan ng pagdaan sa artikulong ito, malinaw mong makikita na ang libreng () pagpapaandar ay pantay na mahalaga. Tutulungan ka nitong palabasin ang pabagu-bago na nakuha na memorya at matiyak na hindi ka mauubusan ng memorya tuwing susubukan mong ipatupad ang iyong mga programa sa hinaharap.