Бесплатна меморија у Ц са слободном функцијом

Free Memory C With Free Function



Ц језик је довољно ефикасан да управља својим управљањем меморијом. То значи да кад год декларишете регуларну променљиву било ког типа података у Ц, сам програмски језик је одговоран за ослобађање или ослобађање ове меморије након што се ваш програм успешно изврши. Међутим, у случају динамичке алокације меморије, будући да меморију додељујете ручно, зато је морате и сами ослободити.

У библиотеци стдлиб.х постоји наменска функција која служи овој сврси, тј. Функција фрее (). Данас ћемо истражити потребу коришћења ове функције у програмском језику Ц. Након тога ћемо погледати неколико примера у којима је ова функција коришћена за ручно ослобађање меморије у програмском језику Ц у Линуку.







Потреба коришћења бесплатне функције у Ц за ослобађање системске меморије:

Сви знамо да наши рачунарски системи имају ограничену меморију, због чега у њој никада не можемо покренути бесконачне програме. У случају аутоматског додељивања меморије, рачунар се брине о ослобађању меморије када се ваш програм заврши са извршењем. Међутим, када меморију ручно додељујемо из хрпе, морамо је ослободити на овај или онај начин.



У супротном, на крају ћемо остати без меморије и нећемо више покретати наше програме. Овде долази до изражаја функција фрее () библиотеке стдлиб.х. Ову функцију користимо на крају програма непосредно пре наредбе ретурн, тако да се меморија хрпе треба вратити у рачунарски систем пре завршетка програма.



Претпоставимо да ћете игнорисати ову функцију док пишете своје Ц кодове који су посебно усмерени на динамичку алокацију меморије. У том случају ће доћи до тачке када више нећете моћи приступити својој хрпи јер ће јој понестати меморије. Зато се ова наизглед мање вриједна функција никада не смије заборавити кад год преузимате одговорност за динамичку додјелу меморије.





Општа синтакса функције фрее () у програмском језику Ц је следећа:

празнинабесплатно (празнина*птр)

Овде кључна реч воид пре функције фрее () наводи да је тип повратка ове функције воид. Показивач унутар заграда одговара меморијској локацији коју је потребно ослободити. Следећи одељак ће описати неке примере у којима је функција фрее () коришћена за ослобађање динамичке меморије набављене у Ц.



Примери коришћења бесплатне функције у језику Ц:

Функција фрее () може се користити са све три функције алокације меморије библиотеке стдлиб.х, тј. Маллоц, цаллоц и реаллоц. Ова функција је обавезна за коришћење након навођења основних функционалности вашег програма како бисте могли да предате меморију хрпе коју сте динамички доделили током извршавања програма свом рачунарском систему. Погледајмо сада неколико примјера у којима је функција фрее () кориштена са маллоц и цаллоц функцијама у програмском језику Ц.

Пример # 1: Коришћење бесплатне функције са цаллоц -ом у Ц:

Ц код за коришћење функције фрее () са функцијом цаллоц () је подељен на доњој слици:

Основна сврха овог кода била је динамичко додјељивање неке меморије уз помоћ функције цаллоц (). За то смо узели величину динамичке меморије и вредности ове динамичке меморије као унос од корисника. Затим смо намјеравали одштампати стечене вриједности на терминалу. Након целог овог кода, имамо нашу функцију фрее () која ће ослободити додељену динамичку меморију због извршавања нашег Ц програма.

Благо измењена верзија истог кода такође је приказана на доле наведеној слици:

Ова измењена верзија је намеравала само да штампа наше динамички додељене меморијске вредности пре ручне иницијализације. Знамо да функција цаллоц () иницијализује целу меморију нулама пре него што дође до актуализације. Међутим, главна тачка коју треба напоменути овде у овом коду је да, иако је овај код био прилично компактан и једноставан, ипак смо користили функцију фрее () када се постигне жељена функционалност само за ослобађање меморије хрпе коју смо имали стечене као резултат извршавања овог програма Ц.

Пример # 2: Коришћење бесплатне функције са маллоц -ом у Ц:

Ц код за коришћење функције фрее () са функцијом маллоц () је подељен на слици додатој испод:

Основна сврха овог кода била је динамичко додељивање неке меморије уз помоћ функције маллоц (). За то смо доделили вредности ове динамичке меморије у фор петљи. Затим смо намеравали да одштампамо стечене вредности на терминалу уз помоћ друге фор петље. Након целог овог кода, имамо функцију фрее () непосредно пре наредбе ретурн која ће једноставно ослободити додељену динамичку меморију као резултат извршавања нашег Ц програма.

Закључак:

Овај чланак је нагласио важност коришћења функције фрее () у програмском језику Ц у Линуку. Већина корисника сматра да су функције додељивања датотеке стдлиб.х важније; међутим, прегледавајући овај чланак, јасно можете видети да је функција фрее () подједнако важна. Помоћи ће вам да ослободите динамички стечену меморију и осигурати да вам никада не понестане меморије кад год покушате да убудуће извршите своје програме.