இலவச செயல்பாட்டுடன் C இல் இலவச நினைவகம்

Free Memory C With Free Function



சி மொழி அதன் நினைவக நிர்வாகத்தை கையாளும் அளவுக்கு திறமையானது. C இல் எந்த தரவு வகையின் வழக்கமான மாறுபாட்டை நீங்கள் அறிவிக்கும்போதெல்லாம், உங்கள் நிரல் வெற்றிகரமாக செயல்படுத்தப்பட்டவுடன் இந்த நினைவகத்தை கையாள அல்லது வெளியிடுவதற்கு நிரலாக்க மொழியே பொறுப்பாகும். இருப்பினும், டைனமிக் மெமரி ஒதுக்கீட்டின் விஷயத்தில், நீங்கள் நினைவகத்தை கைமுறையாக ஒதுக்குவதால், அதையும் நீங்கள் சொந்தமாக வெளியிட வேண்டும்.

Stdlib.h நூலகத்தில், இந்த நோக்கத்திற்காக சேவை செய்வதற்காக ஒரு பிரத்யேக செயல்பாடு உள்ளது, அதாவது, இலவச () செயல்பாடு. இன்று, சி நிரலாக்க மொழியில் இந்த செயல்பாட்டை பயன்படுத்த வேண்டியதன் அவசியத்தை ஆராய்வோம். அதன் பிறகு, லினக்ஸில் சி நிரலாக்க மொழியில் கைமுறையாக நினைவகத்தை விடுவிக்க இந்த செயல்பாடு பயன்படுத்தப்பட்ட சில உதாரணங்களைப் பார்ப்போம்.







கணினி நினைவகத்தை விடுவிக்க C இல் இலவச செயல்பாட்டைப் பயன்படுத்த வேண்டும்:

நம் கணினி அமைப்புகளில் மட்டுப்படுத்தப்பட்ட நினைவகம் உள்ளது என்பதை நாம் அனைவரும் அறிவோம், இதன் காரணமாக நாம் அதில் எல்லையற்ற நிரல்களை இயக்க முடியாது. தானியங்கி நினைவக ஒதுக்கீட்டின் விஷயத்தில், உங்கள் நிரல் அதன் செயல்பாட்டை முடித்ததும், நினைவகத்தை விடுவிப்பதை கணினி கவனித்துக்கொள்கிறது. இருப்பினும், நாம் நினைவகத்தை குவியலிலிருந்து கைமுறையாக ஒதுக்கும்போது, ​​நாம் அதை ஒரு வழியில் அல்லது வேறு வழியில் இருந்து விடுவிக்க வேண்டும்.



இல்லையெனில், நாம் இறுதியில் நினைவகத்தில் பற்றாக்குறை ஏற்படும், மேலும் நாங்கள் எங்கள் திட்டங்களை மேலும் இயக்க மாட்டோம். இங்குதான் stdlib.h நூலகத்தின் இலவச () செயல்பாடு செயல்படுகிறது. ரிப்பேர்ட் ஸ்டேட்மெண்டிற்கு முன்பே ஒரு புரோகிராமின் முடிவில் இந்த செயல்பாட்டை நாங்கள் பயன்படுத்துகிறோம், இதனால் உங்கள் ப்ரோக்ராம் முடிவடைவதற்கு முன்பு கம்ப்யூட்டர் சிஸ்டத்திற்கு ஹீப் மெமரி திரும்ப வேண்டும்.



குறிப்பாக டைனமிக் மெமரி ஒதுக்கீட்டை இலக்காகக் கொண்ட உங்கள் சி குறியீடுகளை எழுதும் போது இந்த செயல்பாட்டை நீங்கள் புறக்கணிப்பீர்கள் என்று வைத்துக்கொள்வோம். அப்படியானால், உங்கள் குவியலை நினைவகம் தீர்ந்துவிடும் என்பதால் நீங்கள் அதை அணுக முடியாது. அதனால்தான் நினைவக ஒதுக்கீட்டின் பொறுப்பை நீங்கள் மாறும் போது எப்பொழுதும் குறைவான மதிப்புமிக்க செயல்பாட்டை மறக்க முடியாது.





சி நிரலாக்க மொழியில் இலவச () செயல்பாட்டின் பொதுவான தொடரியல் பின்வருமாறு:

வெற்றிடம்இலவசம் (வெற்றிடம்*ptr)

இங்கே, இலவச () செயல்பாட்டிற்கு முன் உள்ள வெற்றிட முக்கிய சொல் இந்த செயல்பாட்டின் திரும்பும் வகை செல்லாது என்று கூறுகிறது. அடைப்புக்குறிக்குள் உள்ள சுட்டிக்காட்டி கையாளப்பட வேண்டிய நினைவக இடத்திற்கு ஒத்திருக்கிறது. C இல் பெறப்பட்ட டைனமிக் மெமரியை வெளியிடுவதற்கு இலவச () செயல்பாடு பயன்படுத்தப்பட்ட சில உதாரணங்களை பின்வரும் பிரிவு விவரிக்கும்.



C இல் இலவச செயல்பாட்டைப் பயன்படுத்துவதற்கான எடுத்துக்காட்டுகள்:

இலவச () செயல்பாட்டை stdlib.h நூலகத்தின் மூன்று நினைவக ஒதுக்கீட்டு செயல்பாடுகளுடன் பயன்படுத்தலாம், அதாவது, malloc, calloc மற்றும் realloc. உங்கள் நிரலின் அடிப்படை செயல்பாட்டைக் கூறிய பிறகு இந்த செயல்பாட்டைப் பயன்படுத்துவது கட்டாயமாகும், இதனால் நிரல் செயல்பாட்டின் போது நீங்கள் ஒதுக்கப்பட்ட குவியல் நினைவகத்தை உங்கள் கணினி அமைப்புக்கு மீண்டும் ஒப்படைக்க முடியும். இப்போது, ​​சி நிரலாக்க மொழியில் மல்லோக் மற்றும் காலோக் செயல்பாடுகளுடன் இலவச () செயல்பாடு பயன்படுத்தப்பட்டுள்ள சில எடுத்துக்காட்டுகளைப் பார்ப்போம்.

எடுத்துக்காட்டு # 1: C இல் காலோக் உடன் இலவச செயல்பாட்டைப் பயன்படுத்துதல்:

காலோக் () செயல்பாட்டுடன் இலவச () செயல்பாட்டைப் பயன்படுத்துவதற்கான சி குறியீடு கீழே உள்ள படத்தில் பகிரப்பட்டுள்ளது:

இந்த குறியீட்டின் அடிப்படை நோக்கம், காலோக் () செயல்பாட்டின் உதவியுடன் சில நினைவகத்தை மாறும் வகையில் ஒதுக்குவதாகும். அதற்காக, டைனமிக் மெமரியின் அளவு மற்றும் இந்த டைனமிக் மெமரியின் மதிப்புகளை பயனரிடமிருந்து உள்ளீடாக எடுத்துள்ளோம். பிறகு, வாங்கிய மதிப்புகளை முனையத்தில் அச்சிட எண்ணினோம். இந்த முழு குறியீட்டிற்குப் பிறகு, எங்களுடைய இலவச () செயல்பாடு எங்களிடம் உள்ளது, இது எங்கள் சி நிரலின் செயல்பாட்டின் காரணமாக ஒதுக்கப்பட்ட டைனமிக் நினைவகத்தை வெளியிடும்.

அதே குறியீட்டின் சற்று மாற்றியமைக்கப்பட்ட பதிப்பும் கீழே உள்ள படத்தில் காட்டப்பட்டுள்ளது:

இந்த மாற்றியமைக்கப்பட்ட பதிப்பு அதன் கைமுறையான துவக்கத்திற்கு முன் நமது மாறும் ஒதுக்கப்பட்ட நினைவக மதிப்புகளை அச்சிட மட்டுமே. நிஜமாக்கல் நிகழும் முன், காலோக் () செயல்பாடு பூஜ்ஜியங்களுடன் முழு நினைவகத்தையும் துவக்குகிறது என்பதை நாங்கள் அறிவோம். எவ்வாறாயினும், இந்த குறியீட்டில் இங்கு கவனிக்கப்பட வேண்டிய முக்கிய அம்சம் என்னவென்றால், இந்த குறியீடு மிகவும் கச்சிதமாகவும் எளிமையாகவும் இருந்தாலும், நாம் விரும்பிய செயல்பாட்டை அடைந்தவுடன் இலவச () செயல்பாட்டைப் பயன்படுத்தினோம். இந்த சி திட்டத்தை செயல்படுத்துவதன் விளைவாக பெறப்பட்டது.

எடுத்துக்காட்டு # 2: C இல் உள்ள malloc உடன் இலவச செயல்பாட்டைப் பயன்படுத்துதல்:

மல்லோக் () செயல்பாட்டுடன் இலவச () செயல்பாட்டைப் பயன்படுத்துவதற்கான சி குறியீடு கீழே சேர்க்கப்பட்டுள்ள படத்தில் பகிரப்பட்டுள்ளது:

இந்த குறியீட்டின் அடிப்படை நோக்கம் malloc () செயல்பாட்டின் உதவியுடன் சில நினைவகத்தை மாறும் வகையில் ஒதுக்குவதாகும். அதற்காக, இந்த டைனமிக் மெமரியின் மதிப்புகளை ஃபார் லூப்பில் ஒதுக்கியுள்ளோம். பின்னர், வாங்கிய மதிப்புகளை மற்றொரு வளையத்தின் உதவியுடன் முனையத்தில் அச்சிட எண்ணினோம். இந்த முழு குறியீட்டிற்குப் பிறகு, எங்கள் சி நிரலை செயல்படுத்துவதன் விளைவாக ஒதுக்கப்பட்ட டைனமிக் நினைவகத்தை வெளியிடும் ரிட்டர்ன் ஸ்டேட்மெண்டிற்கு முன்பே எங்களுடைய இலவச () செயல்பாடு உள்ளது.

முடிவுரை:

இந்த கட்டுரை லினக்ஸில் சி நிரலாக்க மொழியில் இலவச () செயல்பாட்டைப் பயன்படுத்துவதன் முக்கியத்துவத்தை வலியுறுத்தியது. பெரும்பாலான பயனர்கள் stdlib.h கோப்பின் ஒதுக்கீடு செயல்பாடுகள் மிகவும் முக்கியமானவை என்று நம்புகிறார்கள்; இருப்பினும், இந்தக் கட்டுரையைப் பார்ப்பதன் மூலம், இலவச () செயல்பாடு சமமாக முக்கியமானது என்பதை நீங்கள் தெளிவாகக் காணலாம். இது மாறும் கையகப்படுத்தப்பட்ட நினைவகத்தை வெளியிட உதவுகிறது மற்றும் எதிர்காலத்தில் உங்கள் நிரல்களை இயக்க முயற்சிக்கும் போதெல்லாம் உங்கள் நினைவகம் தீர்ந்துவிடாது என்பதை உறுதி செய்யும்.