C++ میں nullptr کیا ہے؟

C My Nullptr Kya



C++ میں، ایک مخصوص پوائنٹر ویلیو کہا جاتا ہے۔ کالعدم پوائنٹر اس بات کی نشاندہی کرنے کے لیے استعمال کیا جاتا ہے کہ ایک پوائنٹر کسی درست میموری مقام کا حوالہ نہیں دے رہا ہے۔ C++ 11 معیاری یا بعد میں، اس کی نمائندگی کلیدی لفظ سے کی جاتی ہے۔ nullptr ” یا 0 کی مستقل قدر سے۔

دی کالعدم پوائنٹر خیال بہت اہم ہے کیونکہ یہ میموری کی غلط رسائی کو روکنے میں مدد کرتا ہے، جس کے نتیجے میں رن ٹائم کی غیر متوقع خرابیاں اور سافٹ ویئر کی ناکامی ہو سکتی ہے۔ اس منظر نامے پر غور کریں جب کوئی پروگرام میموری ایڈریس سے پڑھنے یا لکھنے کی کوشش کرتا ہے جو یا تو تخلیق نہیں کیا گیا ہے یا جو پہلے ہی ڈیلوکیٹ ہوچکا ہے۔ یہ رویہ C++ میں ناقابل وضاحت ہے اور اس کے نتیجے میں رن ٹائم کے سنگین مسائل یا سیکیورٹی کی خامیاں پیدا ہو سکتی ہیں۔ ایک پوائنٹر غلط ہے اور اگر یہ کسی null قدر سے لنک کرتا ہے تو اس کا حوالہ نہیں دیا جانا چاہیے۔ پروگرام کی برطرفی، سیگمنٹیشن فالٹس، یا غیر مجاز میموری تک رسائی غیر متوقع رویے کی چند مثالیں ہیں جو کہ کسی کا حوالہ دیتے وقت ہو سکتی ہیں۔ کالعدم پوائنٹر .

C++ میں nullptr کی مثال

# شامل کریں
استعمال کرتے ہوئے نام کی جگہ std ;
int مرکزی ( )
{
nullptr_t pi1، pi2 ;
اگر ( pi1 >= pi2 )
{
cout << 'پوائنٹر 1 پوائنٹر 2 کی قدر سے بڑا ہے' << endl ;
}
اور
{
cout << 'پوائنٹر 2 پوائنٹر 1 کی قدر سے بڑا ہے' << endl ;
}
چار * چودھری = pi1 ;
اگر ( چودھری == nullptr )
cout << 'ch پوائنٹر متغیر کی 0 ویں ایڈریس ریفرنس کے ساتھ null ویلیو ہے' << endl ;
اور
cout << 'ch پوائنٹر متغیر null ویلیو نہیں ہے اس کی ایڈریس ریفرنس کے ساتھ کچھ قدر ہے' << endl ;
واپسی 0 ;
}

مذکورہ کوڈ میں، ہم دو استعمال کر رہے ہیں۔ nullptrs اور ان کا ایک دوسرے سے موازنہ کرنا۔ پھر ہم کریکٹر پوائنٹر کو درست کرنے کے لیے استعمال کر رہے ہیں۔ nullptr .







آؤٹ پٹ



C++ میں nullptr استعمال کرنے کی وجوہات

کالعدم اشارے اکثر C++ پروگرامنگ میں کئی وجوہات کی بنا پر استعمال ہوتے ہیں:



1: پوائنٹرز کو شروع کرنا

جب ایک پوائنٹر متغیر کا اعلان کیا جاتا ہے، تو اسے ہمیشہ ایک درست میموری لوکیشن یا a کے ساتھ شروع کیا جانا چاہیے۔ کالعدم پوائنٹر . جب کوڈ میں بعد میں پوائنٹر تک رسائی حاصل کی جاتی ہے، تو یہ غیر اعلانیہ رویے کو روکنے میں مدد کرتا ہے۔





2: ایرر کوڈ

افعال واپس آ سکتے ہیں۔ کالعدم اشارے ایرر کوڈز کے بطور یہ ظاہر کرنے کے لیے کہ وہ مخصوص کارروائی کو مکمل کرنے یا میموری مختص کرنے سے قاصر تھے۔

3: پوائنٹر کی درستگی کی تصدیق کرنا

حوالہ دینے سے پہلے پوائنٹر کی درستگی کی تصدیق کرنا ہمیشہ ایک زبردست خیال ہوتا ہے۔ یہ کوڈ کی مضبوطی کو بڑھاتا ہے اور رن ٹائم کی غیر متوقع ناکامیوں کو روکنے میں مدد کرتا ہے۔



4: پولیمورفزم

C++ میں، بیس کلاس پوائنٹرز جو اخذ کردہ کلاسز کی کسی بھی چیز کی طرف اشارہ نہیں کرتے ہیں ان کی نمائندگی کرتے ہیں کالعدم اشارے . یہ عام طور پر پولیمورفک پروگرامنگ میں آبجیکٹ پر مبنی خصوصیات جیسے وراثت اور ورچوئل فنکشنز کو سنبھالنے کے لیے استعمال ہوتا ہے۔

کالعدم اشارے لٹکنے والے یا غیر شروع شدہ اشارے کے ساتھ الجھن میں نہیں پڑنا چاہئے، یہ یاد رکھنا ضروری ہے۔ غیر شروع شدہ پوائنٹرز میموری میں کسی بھی پتے کی طرف اشارہ کر سکتے ہیں کیونکہ ان کی ابتداء کسی قدر کے ساتھ نہیں کی گئی ہے۔ ڈینگلنگ پوائنٹرز، دوسری طرف، وہ ہیں جو غلط یا پہلے سے مختص میموری والے علاقوں کا حوالہ دیتے ہیں۔ C++ پروگرامنگ میں، ڈینگلنگ پوائنٹرز، اور غیر شروع شدہ پوائنٹرز دونوں میں رن ٹائم کے مسائل پیدا ہونے کی صلاحیت ہے۔

C++ میں nullptr استعمال کرنے کے فوائد

استعمال کرنے کے کئی فائدے ہیں۔ nullptr .

1: حفاظت

کیونکہ nullptr NULL سے زیادہ ٹائپ سیف ہے، اس کی بجائے اسے استعمال کیا جانا چاہیے۔ جب کہ NULL کو صرف صفر کی قدر کے ساتھ ایک عدد مستقل کے طور پر بیان کیا گیا ہے، nullptr ایک پوائنٹر لٹریل ہے جسے صرف پوائنٹر کی قسم میں تبدیل کیا جا سکتا ہے نہ کہ کسی دوسری قسم میں۔

2: قابل استعمال

C++ پروگرامنگ میں، استعمال کرنے کے بہت سے طریقے ہیں۔ کالعدم پوائنٹر . پوائنٹرز کو شروع کرنے کے لیے، فنکشن کالز پر پیرامیٹرز بھیجیں، یا فنکشنز سے پوائنٹر ویلیو واپس کریں، مثال کے طور پر، اس کے کچھ ممکنہ استعمال ہیں۔ اس کا استعمال اس بات کا تعین کرنے کے لیے بھی کیا جا سکتا ہے کہ آیا کسی فنکشن کال یا ایکشن سے ایک جائز پوائنٹر ویلیو حاصل ہوئی ہے۔

3: ڈائنامک میموری ایلوکیشن

ڈائنامک میموری ایلوکیشن اے کے سب سے زیادہ مقبول استعمال میں سے ہے۔ کالعدم پوائنٹر . C++ میں نئے آپریٹر کا استعمال کرتے ہوئے، ڈائنامک میموری ایلوکیشن مکمل ہو جاتی ہے۔ نیا طریقہ استعمال کرنے پر، تازہ پیدا کردہ آبجیکٹ کی طرف ایک پوائنٹر واپس آ جاتا ہے۔ اگر مختص کسی بھی وجہ سے ناکام ہوجاتا ہے، جیسے کافی میموری نہ ہونا، NULL واپس بھیج دیا جاتا ہے۔ نتیجتاً، پوائنٹر کو استعمال کرنے سے پہلے ریٹرن ویلیو کی تصدیق کرنا بہت ضروری ہے تاکہ یہ یقینی بنایا جا سکے کہ ایلوکیشن کامیاب تھی۔

نتیجہ

دی کالعدم پوائنٹر C++ پروگرامنگ میں ایک اہم آئیڈیا ہے جو یہ ظاہر کرنے کا طریقہ کار فراہم کرتا ہے کہ میموری میں کوئی پتہ غائب ہے۔ ڈیولپرز ملازمت کے ذریعے سافٹ ویئر کریش اور دیگر مسائل کو روک سکتے ہیں۔ کالعدم اشارے اس بات کو یقینی بنانے کے لیے کہ ان کی ایپلی کیشنز میموری کے غلط پتوں تک رسائی کی کوشش نہ کریں۔ لہذا، پروگرامرز کے لیے یہ سمجھنا ضروری ہے کہ کیسے کالعدم اشارے استعمال کیا جانا چاہئے اور ان کے پروگراموں میں ایسا مؤثر طریقے سے کرنا چاہئے۔