الأخطاء في التعليمات البرمجية هي دائما سبب الصداع للمطورين. واحد من هذه الأخطاء هو "يحصل ج غير معروف" ، والتي يمكن أن تحدث عند تجميع البرامج في اللغة ج.
يشير ظهور هذا الخطأ إلى أن البرنامج يستخدم وظيفة جيتس () دون إعلان مسبق. جيتس () هي وظيفة لقراءة سلسلة من المدخلات القياسية ، ومع ذلك ، بسبب انعدام الأمن ، تم إهمالها في ج11. بدلا من جيتس () ، يجب استخدام وظائف أكثر أمنا مثل فجيتس() أو سكانف ().
لإصلاح هذا الخطأ ، يجب إعادة كتابة القسم المقابل من التعليمات البرمجية ، واستبدال الدعوة إلى وظيفة جيتس () مع فجيتس () أو سكانف (). على سبيل المثال ، بدلا من جيتس(ج) ، يمكنك استخدام فجيتس(ج ، سيزوف(ج) ، ستدين). وظيفة فجيتس() يقرأ سلسلة من تيار ستدين ويكتب إلى صفيف ج من الحجم المحدد. وبالمثل ، بدلا من جيتس(ج) ، يمكنك استخدام سكانف ("٪س" ، ج) ، حيث ٪ س يشير إلى قراءة سلسلة دون مسافات وكتابته إلى مجموعة ج.
من المهم ملاحظة أنه بعد إجراء تغييرات على الكود ، يجب إعادة ترجمة البرنامج. يوصى أيضا باستخدام علامة الجدار أو الخطأ ، والتي ستسمح لك باكتشاف الأخطاء المحتملة الأخرى.
- ما هو "يحصل ج غير معروف"?
- أسباب يحصل ج غير معروف
- طرق للقضاء على يحصل ج لم يتم تعريف
ما هو "يحصل ج غير معروف"?
"جيتس ج غير معرف" هو خطأ يمكن أن يحدث عند استخدام وظيفة جيتس في لغة البرمجة سي. يتم استخدام وظيفة جيتس لقراءة سلسلة من المدخلات القياسية (لوحة المفاتيح) وحفظه إلى المخزن المؤقت المحدد.
ومع ذلك ، يتم إهمال وظيفة جيتس ولا ينصح للاستخدام بسبب إمكانية تجاوز سعة المخزن المؤقت. إذا كانت سلسلة الإدخال أكبر من حجم المخزن المؤقت ، يمكن أن تتسبب وظيفة جيتس في تجاوز سعة المخزن المؤقت وتؤدي إلى سلوك برنامج غير محدد.
لتجنب الخطأ "جيتس لم يتم تعريف ج" ، فمن المستحسن استخدام بدائل أكثر أمانا لوظيفة جيتس ، مثل فجيتس ، سكانف أو جيتلين. تسمح لك هذه الوظائف بتحديد الحد الأقصى لعدد الأحرف التي يمكن قراءتها ، مما يمنع إمكانية تجاوز سعة المخزن المؤقت.
فيما يلي مثال على استخدام وظيفة فجيتس لقراءة سلسلة بأمان:
# تشمل
كثافة العمليات الرئيسية () {
المخزن المؤقت شار [100];
برينتف ("أدخل السلسلة:");
فجيتس (العازلة ، سيزوف (العازلة) ، ستدين);
برينتف ("لقد دخلت: ٪ ق
"،عازلة);
العودة 0;
}
في هذا المثال ، وظيفة فجيتس يقرأ سلسلة تصل إلى 100 حرفا في الحجم من المدخلات القياسية وحفظه إلى المخزن المؤقت. بهذه الطريقة ، يمكنك تجنب الخطأ "يحصل ج لم يتم تعريف" ومنع إمكانية تجاوز سعة المخزن المؤقت.
لم يتم تعريف أسباب يحصل مع
يحصل مع غير معروف هو خطأ شائع أن المبرمجين تواجه عند العمل مع يحصل () وظيفة في لغة البرمجة ج. يمكن أن يحدث هذا الخطأ لعدة أسباب:
تجاوز حجم المخزن المؤقت:
وظيفة يحصل () يقرأ الأحرف من تيار الإدخال ويخزنها في صفيف حتى يواجه حرف سطر جديد أو نهاية الملف. ومع ذلك ، لا تتحقق الوظيفة من حجم بيانات الإدخال ، مما قد يؤدي إلى تجاوز سعة المخزن المؤقت.
حرف سطر جديد مفقود:
إذا لم يكن هناك حرف سطر جديد في بيانات الإدخال ، فستستمر وظيفة جيتس() في قراءة البيانات حتى تصل إلى نهاية الملف أو يحدث تجاوز سعة المخزن المؤقت. قد يؤدي هذا إلى قيم غير محددة.