C++ এ nullptr কি?

C E Nullptr Ki



C++ এ, একটি নির্দিষ্ট পয়েন্টার মান বলা হয় a নাল পয়েন্টার একটি পয়েন্টার কোনো বৈধ মেমরি অবস্থান উল্লেখ করা হয় না যে নির্দেশ করতে ব্যবহৃত হয়. C++11 স্ট্যান্ডার্ড বা তার পরে, এটি কীওয়ার্ড দ্বারা প্রতিনিধিত্ব করা হয় “ nullptr ” অথবা 0 এর ধ্রুবক মান দ্বারা।

দ্য নাল পয়েন্টার ধারণাটি অত্যন্ত গুরুত্বপূর্ণ কারণ এটি ভুল মেমরি অ্যাক্সেস প্রতিরোধে সহায়তা করে, যার ফলে অপ্রত্যাশিত রানটাইম ত্রুটি এবং সফ্টওয়্যার ব্যর্থতা হতে পারে। পরিস্থিতি বিবেচনা করুন যখন একটি প্রোগ্রাম একটি মেমরি ঠিকানা থেকে পড়ার বা লেখার চেষ্টা করে যা হয় তৈরি করা হয়নি বা ইতিমধ্যেই ডিলোকেট করা হয়েছে। এই আচরণটি C++ এ অনির্ধারিত এবং এর ফলে গুরুতর রানটাইম সমস্যা বা নিরাপত্তা ত্রুটি হতে পারে। একটি পয়েন্টার অবৈধ এবং যদি এটি একটি নাল মান লিঙ্ক করে তাহলে ডিরেফারেন্স করা উচিত নয়৷ প্রোগ্রামের সমাপ্তি, বিভাজন ত্রুটি, বা অননুমোদিত মেমরি অ্যাক্সেসগুলি অপ্রত্যাশিত আচরণের কয়েকটি উদাহরণ যা একটি ডিরেফারেন্স করার সময় ঘটতে পারে নাল পয়েন্টার .

C++ এ nullptr-এর উদাহরণ

# অন্তর্ভুক্ত করুন
ব্যবহার নামস্থান std ;
int প্রধান ( )
{
nullptr_t pi1, pi2 ;
যদি ( pi1 >= pi2 )
{
cout << 'পয়েন্টার 1 পয়েন্টার 2 মানের চেয়ে বড়' << endl ;
}
অন্য
{
cout << 'পয়েন্টার 2 পয়েন্টার 1 মানের চেয়ে বড়' << endl ;
}
চর * সিএইচ = pi1 ;
যদি ( সিএইচ == nullptr )
cout << 'ch পয়েন্টার ভেরিয়েবলের 0 তম ঠিকানা রেফারেন্স সহ নাল মান আছে' << endl ;
অন্য
cout << 'ch পয়েন্টার ভেরিয়েবলটি নাল মান নয় এটির ঠিকানা রেফারেন্স সহ কিছু মান রয়েছে' << endl ;
ফিরে 0 ;
}

উপরের কোডে, আমরা দুটি ব্যবহার করছি nullptrs এবং একে অপরের সাথে তাদের তুলনা। তারপরে আমরা ক্যারেক্টার পয়েন্টারটি যাচাই করতে ব্যবহার করছি nullptr .







আউটপুট



C++ এ nullptr ব্যবহার করার কারণ

নাল পয়েন্টার প্রায়ই বিভিন্ন কারণে C++ প্রোগ্রামিং-এ ব্যবহৃত হয়:



1: পয়েন্টার শুরু করা

যখন একটি পয়েন্টার ভেরিয়েবল ঘোষণা করা হয়, এটি সর্বদা একটি বৈধ মেমরি অবস্থান বা একটি দিয়ে শুরু করা উচিত নাল পয়েন্টার . কোডে পরে পয়েন্টার অ্যাক্সেস করা হলে, এটি অঘোষিত আচরণ প্রতিরোধ করতে সাহায্য করে।





2: ত্রুটি কোড

ফাংশন ফিরে আসতে পারে নাল পয়েন্টার ত্রুটি কোড হিসাবে দেখায় যে তারা নির্দিষ্ট ক্রিয়াটি সম্পূর্ণ করতে বা মেমরি বরাদ্দ করতে অক্ষম ছিল।

3: পয়েন্টারের বৈধতা যাচাই করা

ডিরেফারেন্স করার আগে পয়েন্টারের বৈধতা যাচাই করা সর্বদা একটি স্মার্ট ধারণা। এটি কোডের দৃঢ়তা বাড়ায় এবং অপ্রত্যাশিত রানটাইম ব্যর্থতা প্রতিরোধে সহায়তা করে।



4: পলিমরফিজম

C++ এ, বেস-ক্লাস পয়েন্টারগুলি যেগুলি প্রাপ্ত ক্লাসের কোনো বস্তুর দিকে নির্দেশ করে না তা দ্বারা প্রতিনিধিত্ব করা হয় নাল পয়েন্টার . এটি সাধারণত উত্তরাধিকার এবং ভার্চুয়াল ফাংশনের মতো অবজেক্ট-ওরিয়েন্টেড বৈশিষ্ট্যগুলি পরিচালনা করতে পলিমরফিক প্রোগ্রামিংয়ে ব্যবহৃত হয়।

নাল পয়েন্টার ঝুলন্ত বা অপ্রচলিত পয়েন্টারগুলির সাথে বিভ্রান্ত হওয়া উচিত নয়, এটি মনে রাখা অত্যাবশ্যক৷ অপ্রবর্তিত পয়েন্টারগুলি মেমরিতে যেকোন ঠিকানা নির্দেশ করতে পারে কারণ সেগুলি একটি মান দিয়ে আরম্ভ করা হয়নি। অন্যদিকে, ড্যাংলিং পয়েন্টারগুলি হল সেইগুলি যেগুলি অবৈধ বা ইতিমধ্যে বরাদ্দকৃত মেমরি অঞ্চলগুলিকে নির্দেশ করে৷ C++ প্রোগ্রামিং-এ, ড্যাংলিং পয়েন্টার এবং অপ্রচলিত পয়েন্টার উভয়েরই রানটাইম সমস্যা হওয়ার সম্ভাবনা রয়েছে।

C++ এ nullptr ব্যবহার করার সুবিধা

ক ব্যবহার করার বেশ কিছু সুবিধা রয়েছে nullptr .

1: নিরাপত্তা

কারণ nullptr NULL এর চেয়ে বেশি টাইপ-নিরাপদ, এটি পরিবর্তে ব্যবহার করা উচিত। যদিও NULL কে শূন্যের মান সহ একটি পূর্ণসংখ্যা ধ্রুবক হিসাবে সংজ্ঞায়িত করা হয়, nullptr একটি পয়েন্টার আক্ষরিক যা শুধুমাত্র একটি পয়েন্টার প্রকারে রূপান্তরিত হতে পারে এবং অন্য কোন প্রকারে নয়।

2: ব্যবহারযোগ্যতা

C++ প্রোগ্রামিং-এ ব্যবহার করার অনেক উপায় আছে নাল পয়েন্টার . পয়েন্টার শুরু করতে, ফাংশন কলে পরামিতি পাঠান, বা ফাংশন থেকে পয়েন্টার মান ফেরত, উদাহরণ হিসাবে, এর কিছু সম্ভাব্য ব্যবহার। এটি একটি ফাংশন কল বা অ্যাকশন একটি বৈধ পয়েন্টার মান প্রদান করেছে কিনা তা নির্ধারণ করতেও ব্যবহার করা যেতে পারে।

3: ডায়নামিক মেমরি বরাদ্দ

ডায়নামিক মেমরি বরাদ্দ a এর সবচেয়ে জনপ্রিয় ব্যবহারের মধ্যে রয়েছে নাল পয়েন্টার . C++ এ নতুন অপারেটর ব্যবহার করে, গতিশীল মেমরি বরাদ্দ করা হয়। নতুন পদ্ধতি চালু করার সময়, সদ্য উত্পন্ন বস্তুতে একটি পয়েন্টার ফিরে আসে। যদি বরাদ্দ যে কোনো কারণে ব্যর্থ হয়, যেমন পর্যাপ্ত মেমরি না থাকা, NULL ফেরত পাঠানো হয়। ফলস্বরূপ, বরাদ্দ সফল হয়েছে কিনা তা নিশ্চিত করতে পয়েন্টার ব্যবহার করার আগে রিটার্ন মান যাচাই করা অত্যন্ত গুরুত্বপূর্ণ।

উপসংহার

দ্য নাল পয়েন্টার C++ প্রোগ্রামিং এর একটি মূল ধারণা যা মেমরিতে একটি ঠিকানা অনুপস্থিত দেখানোর জন্য একটি প্রক্রিয়া দেয়। বিকাশকারীরা নিয়োগের মাধ্যমে সফ্টওয়্যার ক্র্যাশ এবং অন্যান্য সমস্যা প্রতিরোধ করতে পারে নাল পয়েন্টার নিশ্চিত করতে যে তাদের অ্যাপ্লিকেশনগুলি ভুল মেমরি ঠিকানাগুলি অ্যাক্সেস করার চেষ্টা করে না। সুতরাং, প্রোগ্রামারদের জন্য কীভাবে তা বোঝা অপরিহার্য নাল পয়েন্টার ব্যবহার করা উচিত এবং তাদের প্রোগ্রামে তাই দক্ষতার সাথে করতে হবে।