السلام عليكم
عندما نعلن عن مصفوفة حرفية بإمكانها تخزين 4 حروف :
char str[5];
ثم نطلب من المستخدم إدخال كلمة لنخزنها في المصفوفة :
cin>>str;
فنحن الآن (حسب وجهة نظري) تحت رحمة المستخدم :( فبمجرد أن يُدخل كلمة تحتوي على 5 أحرف (و ما بالك إن زاد !) سيحدث فائض حسابي و لن يكون بإمكان المصفوفة تخزين المُدخلات ! و ربما يتوقف البرنامج عن التنفيذ !, سؤالي هو :
- كيف يمكننا التحقق من حدوث الـ Overfolw أو إمكانية تخزين المُدخلات في المصفوفة إن صح التعبير, فإذا كان حجم المُدخلات أكبر من حجم المصفوفة سنظهر رسالة للمستخدم تفيد بوقوع الخطأ و إلا فسنظهر له الجملة التي أدخلها.
=========
عندما نُعلن عن مؤشر يشير إلى جملة :
char str = "arabteam2000";
فإنه لا يمكننا تغيير ما يشير إليه المؤشر لأنه مؤشر إلى ثابت و لكنني رأيت البعض يكتبون هكذا:
*str++;
عندما يريدون أن يشير المؤشر إلى الحرف القادم من السلسة !, لكن :
- مالفرق بين الكتابة السابقة و هذه الكتابة :
str++;
- من ناحية أخرى, أليست *str قيمة !؟ ألا يُعتبر الأمر *str++ زيادة للخانة التي يشير إليها المؤشر بواحد !؟
تحياتي.
