ఉచిత ఫంక్షన్‌తో C లో ఉచిత మెమరీ

Free Memory C With Free Function



సి భాష దాని మెమరీ నిర్వహణను నిర్వహించడానికి తగినంత సమర్థవంతమైనది. దీని అర్థం మీరు C లో ఏదైనా డేటా రకం యొక్క రెగ్యులర్ వేరియబుల్‌ను ప్రకటించినప్పుడు, మీ ప్రోగ్రామ్ విజయవంతంగా అమలు చేయబడిన తర్వాత ఈ మెమరీని డీలోకేట్ చేయడానికి లేదా విడుదల చేయడానికి ప్రోగ్రామింగ్ లాంగ్వేజ్ బాధ్యత వహిస్తుంది. అయితే, డైనమిక్ మెమరీ కేటాయింపు విషయంలో, మీరు మెమరీని మాన్యువల్‌గా కేటాయిస్తున్నారు కాబట్టి, మీరు కూడా మీ స్వంతంగా విడుదల చేయాలి.

Stdlib.h లైబ్రరీలో, ఈ ప్రయోజనం కోసం, అంటే ఉచిత () ఫంక్షన్‌ను అందించడానికి ఒక ప్రత్యేకమైన ఫంక్షన్ ఉంది. ఈ రోజు, C ప్రోగ్రామింగ్ లాంగ్వేజ్‌లో ఈ ఫంక్షన్‌ను ఉపయోగించాల్సిన అవసరాన్ని మేము అన్వేషిస్తాము. ఆ తరువాత, లైనక్స్‌లో సి ప్రోగ్రామింగ్ లాంగ్వేజ్‌లో మెమరీని మాన్యువల్‌గా ఖాళీ చేయడానికి ఈ ఫంక్షన్ ఉపయోగించబడిన కొన్ని ఉదాహరణలను చూద్దాం.







సిస్టమ్ మెమరీని ఖాళీ చేయడానికి C లో ఉచిత ఫంక్షన్‌ని ఉపయోగించాల్సిన అవసరం ఉంది:

మన కంప్యూటర్ సిస్టమ్‌లకు పరిమిత మెమరీ ఉందని మనందరికీ తెలుసు, దాని కారణంగా మనం దానిలో అనంతమైన ప్రోగ్రామ్‌లను అమలు చేయలేము. ఆటోమేటిక్ మెమరీ కేటాయింపు విషయంలో, మీ ప్రోగ్రామ్ అమలు పూర్తయినప్పుడు కంప్యూటర్ మెమరీని విడిపించేలా చూసుకుంటుంది. అయితే, మనం మెమరీని కుప్ప నుండి మాన్యువల్‌గా కేటాయించినప్పుడు, మనం దానిని ఒక మార్గం లేదా మరొకటి నుండి విడిపించాలి.



లేకపోతే, మేము చివరికి జ్ఞాపకశక్తిని కోల్పోతాము మరియు మేము మా ప్రోగ్రామ్‌లను ఇకపై అమలు చేయము. ఇక్కడ stdlib.h లైబ్రరీ యొక్క ఉచిత () ఫంక్షన్ అమలులోకి వస్తుంది. రిటర్న్ స్టేట్‌మెంట్‌కు ముందు ప్రోగ్రామ్ చివరలో మేము ఈ ఫంక్షన్‌ను ఉపయోగిస్తాము, తద్వారా మీ ప్రోగ్రామ్ ముగిసే ముందు కుప్ప మెమరీని కంప్యూటర్ సిస్టమ్‌కు తిరిగి ఇవ్వాలి.



ముఖ్యంగా డైనమిక్ మెమరీ కేటాయింపు వైపు లక్ష్యంగా ఉన్న మీ సి కోడ్‌లను వ్రాసేటప్పుడు మీరు ఈ ఫంక్షన్‌ను విస్మరిస్తూనే ఉంటారని అనుకుందాం. ఆ సందర్భంలో, మెమరీ అయిపోయినందున మీరు మీ కుప్పను మరింత యాక్సెస్ చేయలేనప్పుడు ఒక పాయింట్ వస్తుంది. అందుకే మీరు జ్ఞాపకశక్తి కేటాయింపు బాధ్యతను డైనమిక్‌గా తీసుకున్నప్పుడల్లా తక్కువ విలువైన ఈ ఫంక్షన్ ఎప్పటికీ మర్చిపోకూడదు.





C ప్రోగ్రామింగ్ భాషలో ఉచిత () ఫంక్షన్ యొక్క సాధారణ వాక్యనిర్మాణం క్రింది విధంగా ఉంది:

శూన్యంఉచిత (శూన్యం*ptr)

ఇక్కడ, ఫ్రీ () ఫంక్షన్‌కు ముందు శూన్య కీవర్డ్ ఈ ఫంక్షన్ యొక్క రిటర్న్ రకం చెల్లదని పేర్కొంది. బ్రాకెట్‌ల లోపల ఉన్న పాయింటర్ డీమోల్ చేయాల్సిన మెమరీ స్థానానికి అనుగుణంగా ఉంటుంది. C లో పొందిన డైనమిక్ మెమరీని విడుదల చేయడానికి ఉచిత () ఫంక్షన్ ఉపయోగించబడిన కొన్ని ఉదాహరణలను క్రింది విభాగం వివరిస్తుంది.



C లో ఉచిత ఫంక్షన్‌ను ఉపయోగించే ఉదాహరణలు:

ఉచిత () ఫంక్షన్‌ను stdlib.h లైబ్రరీ యొక్క మూడు మెమరీ కేటాయింపు ఫంక్షన్లతో ఉపయోగించవచ్చు, అనగా malloc, calloc మరియు realloc. మీ ప్రోగ్రామ్ యొక్క ప్రాథమిక కార్యాచరణను పేర్కొన్న తర్వాత ఈ ఫంక్షన్‌ను ఉపయోగించడం తప్పనిసరి, తద్వారా ప్రోగ్రామ్ ఎగ్జిక్యూషన్ సమయంలో మీరు డైనమిక్‌గా కేటాయించిన కుప్ప మెమరీని మీ కంప్యూటర్ సిస్టమ్‌కు తిరిగి అప్పగించవచ్చు. ఇప్పుడు, C ప్రోగ్రామింగ్ లాంగ్వేజ్‌లో ఉచిత () ఫంక్షన్ మల్లోక్ మరియు కాలోక్ ఫంక్షన్‌లతో ఉపయోగించబడిన కొన్ని ఉదాహరణలను చూద్దాం.

ఉదాహరణ # 1: C లో కాలోక్‌తో ఉచిత ఫంక్షన్‌ను ఉపయోగించడం:

కాలోక్ () ఫంక్షన్‌తో ఉచిత () ఫంక్షన్‌ను ఉపయోగించడానికి సి కోడ్ దిగువ చిత్రంలో భాగస్వామ్యం చేయబడింది:

ఈ కోడ్ యొక్క ప్రాథమిక ఉద్దేశ్యం కాల్‌లాక్ () ఫంక్షన్ సహాయంతో కొంత మెమరీని డైనమిక్‌గా కేటాయించడం. దాని కోసం, మేము డైనమిక్ మెమరీ పరిమాణం మరియు ఈ డైనమిక్ మెమరీ విలువలను వినియోగదారు నుండి ఇన్‌పుట్‌గా తీసుకున్నాము. అప్పుడు, మేము టెర్మినల్‌పై పొందిన విలువలను ముద్రించాలని అనుకున్నాము. ఈ మొత్తం కోడ్ తరువాత, మా C ప్రోగ్రామ్ అమలు కారణంగా కేటాయించిన డైనమిక్ మెమరీని విడుదల చేసే మా ఉచిత () ఫంక్షన్ ఉంది.

అదే కోడ్ యొక్క కొద్దిగా సవరించిన వెర్షన్ కూడా దిగువ ఉదహరించబడిన చిత్రంలో చూపబడింది:

ఈ సవరించిన సంస్కరణ మాన్యువల్ ప్రారంభానికి ముందు మా డైనమిక్ కేటాయించిన మెమరీ విలువలను ముద్రించడానికి మాత్రమే ఉద్దేశించబడింది. వాస్తవికత సంభవించే ముందు కాలక్ () ఫంక్షన్ మొత్తం మెమొరీని సున్నాలతో ప్రారంభిస్తుందని మాకు తెలుసు. ఏదేమైనా, ఈ కోడ్‌లో ఇక్కడ గమనించాల్సిన ప్రధాన విషయం ఏమిటంటే, ఈ కోడ్ చాలా కాంపాక్ట్ మరియు సింపుల్‌గా ఉన్నప్పటికీ, మన వద్ద ఉన్న హీప్ మెమరీని విడుదల చేయడానికి మాత్రమే కావలసిన ఫంక్షనాలిటీని సాధించిన తర్వాత మేము ఫ్రీ () ఫంక్షన్‌ను ఉపయోగించాము. ఈ సి ప్రోగ్రామ్‌ను అమలు చేయడం ఫలితంగా పొందబడింది.

ఉదాహరణ # 2: C లో malloc తో ఉచిత ఫంక్షన్‌ను ఉపయోగించడం:

Malloc () ఫంక్షన్‌తో ఉచిత () ఫంక్షన్‌ను ఉపయోగించడానికి C కోడ్ దిగువ జతచేయబడిన చిత్రంలో భాగస్వామ్యం చేయబడింది:

ఈ కోడ్ యొక్క ప్రాథమిక ఉద్దేశ్యం malloc () ఫంక్షన్ సహాయంతో కొంత మెమరీని డైనమిక్‌గా కేటాయించడం. దాని కోసం, మేము ఈ డైనమిక్ మెమరీ విలువలను ఒక లూప్‌లో కేటాయించాము. అప్పుడు, లూప్ కోసం మరొకటి సహాయంతో కొనుగోలు చేసిన విలువలను టెర్మినల్‌పై ముద్రించాలని మేము అనుకున్నాము. ఈ మొత్తం కోడ్ తర్వాత, మా C ప్రోగ్రామ్ అమలు ఫలితంగా కేటాయించిన డైనమిక్ మెమరీని విడుదల చేసే రిటర్న్ స్టేట్‌మెంట్ ముందు మా ఉచిత () ఫంక్షన్ ఉంది.

ముగింపు:

ఈ వ్యాసం Linux లో C ప్రోగ్రామింగ్ లాంగ్వేజ్‌లో ఉచిత () ఫంక్షన్‌ను ఉపయోగించడం యొక్క ప్రాముఖ్యతను నొక్కి చెప్పింది. Stdlib.h ఫైల్ కేటాయింపు విధులు చాలా ముఖ్యమైనవి అని చాలా మంది వినియోగదారులు నమ్ముతారు; అయితే, ఈ వ్యాసం ద్వారా, ఉచిత () ఫంక్షన్ సమానంగా ముఖ్యమైనదని మీరు స్పష్టంగా చూడవచ్చు. ఇది మీకు డైనమిక్ ఆర్జిత మెమరీని విడుదల చేయడంలో సహాయపడుతుంది మరియు భవిష్యత్తులో మీ ప్రోగ్రామ్‌లను అమలు చేయడానికి ప్రయత్నించినప్పుడల్లా మీకు మెమరీ అయిపోకుండా చూసుకోవచ్చు.