আপনার উদাহরণে myApple
বিশেষ মান রয়েছে null
(সাধারণত সমস্ত শূন্য বিট) এবং তাই কিছুই উল্লেখ করা হয় না। এটি যে বস্তুটিকে মূলত উল্লেখ করেছিল তা এখন গাদা হয়ে গেছে। এর অবস্থানটি পুনরুদ্ধার করার কোনও উপায় নেই। এটি আবর্জনা সংগ্রহ ছাড়াই সিস্টেমে মেমরি ফাঁস হিসাবে পরিচিত।
আপনি যদি প্রাথমিকভাবে 1000 টি রেফারেন্স নালায় সেট করে থাকেন তবে আপনার কাছে কেবল 1000 রেফারেন্সের জন্য জায়গা রয়েছে, সাধারণত 1000 * 4 বাইট (32-বিট সিস্টেমে, 64 এর চেয়ে দ্বিগুণ)। যদি এই 1000 টি উল্লেখগুলি মূলত সত্যিকারের বস্তুগুলিতে নির্দেশিত হয়, তবে আপনি প্রতিটি বস্তুর আকারের 1000 গুণ, এবং 1000 রেফারেন্সের জন্য স্থান বরাদ্দ করেছেন।
কিছু ভাষায় (যেমন সি এবং সি ++ এর মতো), পয়েন্টারগুলি সর্বদা কোনও কিছুর প্রতি নির্দেশ দেয় এমনকি "অবিচ্ছিন্ন" হলেও। তারা হ'ল ঠিকানাটি আপনার প্রোগ্রামটির অ্যাক্সেসের জন্য আইনী কিনা তা সমস্যা। বিশেষ ঠিকানা শূন্য (ওরফে null
) ইচ্ছাকৃতভাবে আপনার ঠিকানার জায়গায় ম্যাপ করা হয়নি, সুতরাং মেমরি পরিচালনা ইউনিট (এমএমইউ) দ্বারা অ্যাক্সেস পাওয়া গেলে এবং আপনার প্রোগ্রামটি ক্র্যাশ হয়ে গেলে সেগমেন্টেশন ত্রুটি তৈরি হয়। কিন্তু যেহেতু ঠিকানা শূন্য ইচ্ছাকৃতভাবে করা হয় না এ ম্যাপ করা, এটি একটি আদর্শ মান নির্দেশ করে একটি পয়েন্টার, অত: পর তার ভূমিকা না কিছু ইশারা ব্যবহার করতে হয়ে null
। গল্পটি সম্পূর্ণ করতে, আপনি যেমন new
বা দিয়ে মেমরি বরাদ্দ করেনmalloc()
, অপারেটিং সিস্টেমটি আপনার ঠিকানা জায়গায় র্যামের পৃষ্ঠাগুলি ম্যাপ করতে এমএমইউ কনফিগার করে এবং সেগুলি ব্যবহারযোগ্য হয় able এখনও ঠিকানার জায়গার বিস্তৃত পরিসীমা রয়েছে যা ম্যাপ করা হয়নি এবং সুতরাং সেগমেন্টেশন ত্রুটিগুলিও নিয়ে যায়।