ما هو Nullptr في C ++

Ma Hw Nullptr Fy C



في C ++ ، تسمى قيمة المؤشر المحددة أ مؤشر فارغ يستخدم للإشارة إلى أن المؤشر لا يشير إلى أي موقع ذاكرة صالح. في C ++ 11 القياسي أو الأحدث ، يتم تمثيله بالكلمة الرئيسية ' nullptr 'أو بالقيمة الثابتة 0.

ال مؤشر فارغ الفكرة مهمة لأنها تساعد في منع الوصول الخاطئ للذاكرة ، والذي يمكن أن يؤدي إلى أخطاء غير متوقعة في وقت التشغيل وفشل البرامج. ضع في اعتبارك السيناريو الذي يحاول فيه أحد البرامج القراءة من أو الكتابة إلى عنوان ذاكرة لم يتم إنشاؤه أو تم إلغاء تخصيصه بالفعل. هذا السلوك غير قابل للتعريف في C ++ وقد يؤدي إلى مشكلات خطيرة في وقت التشغيل أو عيوب أمنية. المؤشر غير صالح ويجب عدم إلغاء الإشارة إليه إذا ارتبط بقيمة خالية. تعد عمليات إنهاء البرنامج أو أخطاء التجزئة أو عمليات الوصول غير المصرح بها إلى الذاكرة مجرد أمثلة قليلة على السلوك غير المتوقع الذي قد يحدث عند إلغاء الإشارة إلى مؤشر فارغ .

مثال على nullptr في C ++

# تضمين
استخدام مساحة الاسم الأمراض المنقولة جنسيا ؛
int رئيسي ( )
{
nullptr_t pi1، pi2 ؛
لو ( بي 1 > = pi2 )
{
كوت << 'المؤشر 1 أكبر من قيمة المؤشر 2' << إندل ؛
}
آخر
{
كوت << 'المؤشر 2 أكبر من قيمة المؤشر 1' << إندل ؛
}
شار * الفصل = بي 1 ؛
لو ( الفصل == nullptr )
كوت << 'يحتوي متغير المؤشر ch على قيمة فارغة بمرجع العنوان 0' << إندل ؛
آخر
كوت << 'متغير المؤشر ch ليس قيمة فارغة ، فهو يحتوي على بعض القيمة بمرجع العنوان' << إندل ؛
يعود 0 ؛
}

في الكود أعلاه ، نستخدم اثنين nullptrs ومقارنتها مع بعضها البعض. ثم نستخدم مؤشر الحرف للتحقق من صحة nullptr .







انتاج |



أسباب استخدام nullptr في C ++

مؤشرات فارغة غالبًا ما تستخدم في برمجة C ++ لعدة أسباب:



1: تهيئة المؤشرات

عندما يتم التصريح عن متغير مؤشر ، يجب أن تتم تهيئته دائمًا باستخدام موقع ذاكرة صالح أو ملف مؤشر فارغ . عندما يتم الوصول إلى المؤشر لاحقًا في التعليمات البرمجية ، فهذا يساعد على منع السلوك غير المعلن.





2: رمز الخطأ

قد تعود الوظائف مؤشرات فارغة كرموز خطأ لإظهار أنهم غير قادرين على إكمال الإجراء المحدد أو تخصيص الذاكرة.

3: التحقق من صحة المؤشر

يعد التحقق من صلاحية المؤشر قبل إلغاء الإشارة دائمًا فكرة ذكية. يزيد هذا من قوة الشفرة ويساعد في منع حدوث حالات فشل غير متوقعة في وقت التشغيل.



4: تعدد الأشكال

في C ++ ، يتم تمثيل مؤشرات الفئة الأساسية التي لا تشير إلى أي كائنات من الفئات المشتقة بواسطة مؤشرات فارغة . يستخدم هذا عادةً في البرمجة متعددة الأشكال للتعامل مع الميزات الموجهة للكائنات مثل الوراثة والوظائف الافتراضية.

مؤشرات فارغة لا ينبغي الخلط بينه وبين المؤشرات المتدلية أو غير المهيأة ، فمن الضروري تذكر ذلك. يمكن للمؤشرات غير المهيأة أن تشير إلى أي عنوان في الذاكرة حيث لم يتم تهيئتها بقيمة. من ناحية أخرى ، فإن المؤشرات المتدلية هي تلك التي تشير إلى مناطق ذاكرة غير صالحة أو تم إلغاء تخصيصها بالفعل. في برمجة C ++ ، يمكن لكل من المؤشرات المتدلية والمؤشرات غير المهيأة أن تؤدي إلى مشاكل في وقت التشغيل.

مزايا استخدام nullptr في C ++

هناك العديد من الفوائد لاستخدام ملف nullptr .

1: السلامة

لأن nullptr أكثر أمانًا من النوع NULL ، لذا يجب استخدامه بدلاً من ذلك. بينما يتم تعريف NULL ببساطة على أنه ثابت عدد صحيح بقيمة صفر ، nullptr هو مؤشر حرفي لا يمكن تحويله إلا إلى نوع مؤشر وليس إلى أي نوع آخر.

2: سهولة الاستخدام

في برمجة C ++ ، هناك العديد من الطرق لاستخدام ملحق مؤشر فارغ . لتهيئة المؤشرات ، قم بإرسال المعلمات إلى استدعاءات دالة ، أو إرجاع قيم المؤشر من الوظائف ، كأمثلة ، من بعض الاستخدامات الممكنة لها. يمكن استخدامه أيضًا لتحديد ما إذا كان استدعاء الوظيفة أو الإجراء ينتج عنه قيمة مؤشر شرعية.

3: تخصيص الذاكرة الديناميكي

يعد تخصيص الذاكرة الديناميكي من بين الاستخدامات الأكثر شيوعًا لملف مؤشر فارغ . باستخدام عامل التشغيل الجديد في C ++ ، يتم إنجاز تخصيص الذاكرة الديناميكي. عند استدعاء الطريقة الجديدة ، يتم إرجاع مؤشر إلى الكائن الذي تم إنشاؤه حديثًا. إذا فشل التخصيص لأي سبب من الأسباب ، مثل عدم وجود ذاكرة كافية ، فسيتم إرجاع NULL مرة أخرى. وبالتالي ، من الضروري التحقق من قيمة الإرجاع قبل استخدام المؤشر للتأكد من نجاح التخصيص.

خاتمة

ال مؤشر فارغ هي فكرة أساسية في برمجة C ++ التي تعطي آلية لإظهار أن أحد العناوين في الذاكرة مفقود. يمكن للمطورين منع أعطال البرامج والمشكلات الأخرى عن طريق استخدام مؤشرات فارغة للتأكد من أن تطبيقاتهم لا تحاول الوصول إلى عناوين الذاكرة الخاطئة. لذلك ، من الضروري للمبرمجين فهم كيفية القيام بذلك مؤشرات فارغة يجب استخدامها والقيام بذلك بكفاءة في برامجهم.