هل يقوم c ++ بفحص حدود المصفوفة؟

هل يقوم c ++ بفحص حدود المصفوفة؟
هل يقوم c ++ بفحص حدود المصفوفة؟
Anonim

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

هل تم التحقق المرتبط في مصفوفة؟

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

لماذا لا تحتوي لغة C على فحص للحدود؟

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

هل يتم فحص فهارس مصفوفة C في وقت التشغيل؟

المشكلة الحقيقية هي أن تطبيقات C و C ++لا تتحقق عادة من الحدود(لا في الترجمة ولا في وقت التشغيل). مسموح لهم بالقيام بذلك بشكل كامل. لا تلوم اللغة على ذلك.

ماذا يحدث إذا خرجت المصفوفة عن الحدود في C؟

ArrayIndexOutOfBoundsExceptionقد يحدث إذا تم الوصول إلى مصفوفة خارج الحدود. ولكنلا توجد مثل هذه الوظيفة في لغة C وقد يحدث سلوك غير معرف إذا تم الوصول إلى مصفوفة خارج الحدود. البرنامج الذي يوضح هذا في لغة سي معطى على النحو التالي.