NULL
পরে একটি পয়েন্টার সেট free
করা একটি সন্দেহজনক অনুশীলন যা প্রায়শই স্বতঃস্ফূর্তভাবে মিথ্যা ভিত্তিতে "ভাল প্রোগ্রামিং" বিধি হিসাবে জনপ্রিয় হয়। এটি এমন "ভুয়া সত্য" বিভাগগুলির মধ্যে একটি যা "সঠিক বলে মনে হয়" বিভাগের সাথে সম্পর্কিত তবে বাস্তবে বাস্তবে কার্যকর কোনও কিছুই অর্জন করে না (এবং কখনও কখনও নেতিবাচক পরিণতির দিকে পরিচালিত করে)।
কথিতভাবে, একই পয়েন্টারটির মান একাধিকবার পাস করার NULL
পরে free
ভয়ঙ্কর "ডাবল ফ্রি" সমস্যাটি প্রতিরোধ করার কথা পরে পয়েন্টার সেট করা free
। বাস্তবে যদিও, 10 টির মধ্যে 9 ক্ষেত্রে সত্য "ডাবল ফ্রি" সমস্যা দেখা দেয় যখন একই পয়েন্টার মান ধারণকারী বিভিন্ন পয়েন্টার অবজেক্টগুলি আর্গুমেন্ট হিসাবে ব্যবহৃত হয় free
। বলা বাহুল্য, এই জাতীয় সমস্যা প্রতিরোধের জন্য একেবারে কিছুই অর্জনের NULL
পরে একটি পয়েন্টার সেট করা free
।
অবশ্যই, যুক্তি হিসাবে একই পয়েন্টার অবজেক্টটি ব্যবহার করার সময় "ডাবল ফ্রি" সমস্যাটি চালানো সম্ভব free
। তবে বাস্তবে এমন পরিস্থিতিতে সাধারণত কোডটির সাধারণ লজিকাল কাঠামো নিয়ে একটি সমস্যা নির্দেশ করে, কেবলমাত্র দুর্ঘটনাজনিত "ডাবল ফ্রি" নয়। এই জাতীয় ক্ষেত্রে যখন একই পয়েন্টারটি free
একাধিকবার পাস করা হয়েছে তখন পরিস্থিতি এড়াতে এই জাতীয় সমস্যাগুলির সাথে মোকাবিলা করার একটি সঠিক উপায় হ'ল কোডের কাঠামোর পর্যালোচনা এবং পুনর্বিবেচনা । এই ধরনের ক্ষেত্রে পয়েন্টার সেট করা NULL
এবং সমস্যাটিকে "স্থির" হিসাবে বিবেচনা করা কার্পেটের নীচে সমস্যাটি ঝাড়ানোর চেষ্টা ছাড়া আর কিছুই নয়। এটি কেবল সাধারণ ক্ষেত্রে কাজ করবে না, কারণ কোড কাঠামোর সমস্যাটি সর্বদা নিজেকে প্রকাশ করার জন্য অন্য উপায় খুঁজে পাবে।
অবশেষে, যদি আপনার কোড বিশেষভাবে পয়েন্টার মান হচ্ছে উপর নির্ভর করার জন্য ডিজাইন করা NULL
বা না NULL
, এটা পুরোপুরি পয়েন্টার মান সেট করার জন্য উত্তম NULL
পর free
। তবে সাধারণ "ভাল অনুশীলন" নিয়ম হিসাবে (যেমন "সর্বদা আপনার পয়েন্টার NULL
পরে রাখুন free
") এটি আবার একটি সুপরিচিত এবং সুন্দর অব্যর্থ নকল, প্রায়শই খাঁটি ধর্মীয়, ভুডু জাতীয় কারণগুলির দ্বারা অনুসরণ করা হয়।
ptr == NULL
সাথে কিছু করার আগে চেক করতে সক্ষম হওয়া সর্বদা দরকারী । আপনি যদি আপনার ফ্রি পয়েন্টারগুলি বাতিল করতে না পারেনptr != NULL
তবে এখনও অব্যর্থ পয়েন্টার।