الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سؤال عن الؤشرات

مغلق
بدأه c++2003 في 7 نوفمبر 2003 · 5 رد · 1,138 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

لماذا اذا قمت بتعريف مؤشر لايقبل ان اقوم بادخاله من لوحه المفاتيح

مثل

char *p;

cin>>p;

لايقبل الادخال

واذا قمت بتعريفه من نوع

int *p;

cin>>p;

يعطيني خطاء لماذا وكيف يمكن ان ادخل قيمه المؤشر

واذا ممكن ان اعرف مامعنى هذه الجمله التاليه

char *p;

p=new char;

وشكرا

abdullahf4.jpg
#2

مرحبا أخ c++2003

القيمة التي تريد إدخالها هي عنوان العنصر في الذاكرة

والمعروف أن العنونة ذاتية فأنت تدخل قيمة العنصر والمعالج يحدد

مكان هذا العنصر في الذاكرة

والكود الصحيح هو

int x , *y;

y = &x;

cin>>x;

cout<<x<<"\t"<<y<<endl;

هذا الكود يطلب منك ادخال قيمة x ثم يطبعها لك ويطبع

كذلك عنوانها في الذاكرة y والذي لايمكنك تعديله

جرب الكود أكيد بتفهم قصدي.

#3

السلام عليكم,

إدا أردت أن تدخل قيمة لمؤشر يمكنك فعل دلك بعد أن تدخل رقما من قيمة DWORD مثل int مثلا ويمكن أن تقوم كالتالي :

char* p مؤشر على نوع char

int x هدا الرقم الدي سندخله

cin >> x ندخل الرقم

p=(char*)x نعمل cast وتصبح قيمة المؤشر هي قيمة x .وهنا وقبل أن نستخدم المؤشر يجب أن تكون الداكرة التي يشير إليها هدا المؤشر قابلة للكتابة إدا كنا سنكتب فيها أو قابلة للقراءة إدا كنا سنقرء وخلاف دلك سيؤدي إلى أخطاء في انجاز البرنامج.

وفيما يخص new فهدا يحجز لنا مكانا في داكرة heap وهدا الحجز يكون أثناء اجراء البرنامج عكس الحجز في الأول .وهده تصلح حين لا نكون نعلم مقدار الكمية التي نحتاجها مسبقا وأيضا إدا كانت هده الداكرة سنستعملها في وقت قصير فهده تكون أحسن من الحجز الأولي الدي سيشغل الداكرة من البداية حتى النهاية .وكما يجب أن لا ننسى أن نقوم ب delete لنريح الداكرة المحجوزة ب new عند انتهائنا من تشغيلها.

وكحالة في استعمال new نفترض أنه عندنا برنامجا يحمل ملفا ما نختاره إلى الداكرة وبالطبع لا نعلم مسبقا حجم الملف. فإدا اخترنا حجم الداكرة في البداية فقد نتعرض إلى ملف أكبر من دالك وسيكون عندنا مشكلا أو نحجز كمية كبيرة والملفات تبقى صغيرة وهنا يكون عندنا ضياع.والحل هو أن نقرأ حجم الملف ونحجز الداكرة التي تكفي لهدا الملف وحين ننتهي منه نزيل هده الداكرة ولا يكون عندنا ضياع أو نقص.

وإلى اللقاء.

#4

معلومات مفيدة ..

بارك الله فيكم

#5

السلام عليكم

انا الان اقوم بكتابه برنامج للتشفير واريد ان اقوم بادخال نص غير محدد مع فراغات وانا لااستطيع ادخال النص

وشكرا لكم على المساعده

abdullahf4.jpg
#6

أخي الكريم من الممكن أن تراجع هذا الدرس بخصوص المؤشرات هنا

تحياتي ,,,

هذا الموضوع مغلق.

مواضيع مشابهة