#include <iostream.h>
main()
int m[3]={1,2,3};
int *p;
m[3]=*p;
cout<<*p;والهدف منه هو إخراج القيم علي الشاشة ولا يقوم المترجم بإظهار اي رسائل ERRor
#include <iostream.h>
main()
int m[3]={1,2,3};
int *p;
m[3]=*p;
cout<<*p;والهدف منه هو إخراج القيم علي الشاشة ولا يقوم المترجم بإظهار اي رسائل ERRor
{ } بعد main.

تزود من التقوى فإنك لا تدري *** إذا جن ليل هل تعيش إلى الفجر
فكم من فتى أمسى وأصبح ضاحكاً *** وقد نسجت أكفانه وهو لا يدري
لقراءة القرآن الكريم و سماعه و تفسيره ........

#include <iostream.h>
main()
{
int m[3]={1,2,3};
int *p = new int
m[3]=*p;
cout<<*p;
}المشكلة في القوس الذي بعد ال main ,, والآخر أن المؤشر لايمكن أن تحصل على قيمته مالم تحجز له مكان في الذاكرة ,,
فالمتغير العنوان p ليس صالحا ,, فقمت بحجز مكان صالح له في الذاكرة بالأمر new ,,
خطأ الذاكرة ستكتشفه بعد تشغيل البرنامج ,, باعطاءك UnHandeled Exception ,, لكن سيعمل المثال بعد اضافة أقواس ال main مباشرة ,,
الاخ هيثم نسي
delete p;
قبل القوس الاخير
و ايضا الا يجب ان يكون هناك صنف للدالة main؟ ام هي تعتبر void اذا لم تضع اي من الاصناف الموجودة في ال C++؟
و ممكن ان يكون الاخ ميدو قد وضعها في الترتيب الخاطئ اي انه:
#include <iostream.h>
int main()
{
int m[3]={1,2,3};
int *p = new int
*p = m[2]
cout<<*p;
delete p;
}راكان الحنيطي
Be Open Source

m[2]=*p; // ام *p=m[2];
و اظنها الثانية // ارجو التوضيح والتاكيد.

تزود من التقوى فإنك لا تدري *** إذا جن ليل هل تعيش إلى الفجر
فكم من فتى أمسى وأصبح ضاحكاً *** وقد نسجت أكفانه وهو لا يدري
لقراءة القرآن الكريم و سماعه و تفسيره ........

ربما افادك هذا الكود
#include <iostream.h>
main()
{
int m[3]={1,2,3};
int *p=&m[2];
m[2]=*p;
cout<<*p;
return 0;
}
وهذ في انك تريد طباعه ثالث عنصر اي ال 3
لكن في حال انك تريد طباعه جميع محتويات ال arry
#include <iostream.h>
main()
{
int m[3]={1,2,3};
int *p=m,i=0;
for(i;i<3;++i)
{
m=*p;
cout<<*p;
++p;
}
cout<<"\n";
return 0;
}السلام عليكم ,,
اقتباسالاخ هيثم نسيdelete p;
ال delete لاداعي لها هنا في هذه الحال لأن المتغير p سيتدمر حتما عند خروج الدالة main ,,لأنها ستنهي البرنامج وتحرر الموارد بالقوة ,, لكن لو كنا في دالة مختلفة عندها كعمل محترم منا ,, علينا أن نحرر الموارد بال delete ,, ولكن ايضا ليس لها داعي الا للمحافظة على أداء البرنامج ,, لكن في برامج كبيرة يجب تحرير ال Objects والمتغيرات ,, وخصوصا لو كانت أحجامها كبيرة ,, لأنها ستجعل البرنامج ينهار تماما ,,
اقتباسو ايضا الا يجب ان يكون هناك صنف للدالة main؟ ام هي تعتبر void اذا لم تضع اي من الاصناف الموجودة في ال C++؟
اذا كانت main بدون نوع فهي افتراضيا int ,, لذا فعلا يجب ان نجعل الدالة main تعيد شيئا ما ,, فقط لاسكات المصرف ,, كالتالي في نهاية البرنامج قبل القوس الأخير ,,
return 0;
الأخ عماد الخليل :
اقتباسm[2]=*p; // ام*p=m[2];
و اظنها الثانية // ارجو التوضيح والتاكيد.
لاتفرق هنا مطلقا ,, هذا اذا كان السؤال موجه للكل ,, لكن ان وجه لصاحب البرنامج فأنت تريد تفصيل منطقي وليس برمجي ,, أترك له الرد ,,
وأخيرا كرا جزيلا لك يا griseous_eyes :)
ان بفي هستخدمها من غير مؤشر
#include <iostream.h>
main()
{
int m[3]={1,2,3};
for(int k=0;k<3;k++);
cout<<m[k];
}يا رجاله عيب عليكو ! انا نسيت الاقواس عشان اول مره اكتب كود في المنتدي وكنت متلخبط بعدين انا عمري مبكتب كود من غير منسه ; او استخدم متغير من غير معلن عنه او انسه ال() بتوع ال main اما دي اول مر انسه الاقواس بتاعت الداله والله
هدي أعصابك يا ميدو ,, في غلط تاني غير الي قلتو ,, لازم تعمل return في النهاية زي كده ,,
return 0;
بالتوفيق ,,
ان كنت ستعيب احد كان الاولى ان تعيب نفسك بدل ان تعيب الآخرين لان الخطأ هو خطأ كبر او صغر. وان قلتها مازحا كان بامكانك اختيار كلمات تنم عن ذكاء.

تزود من التقوى فإنك لا تدري *** إذا جن ليل هل تعيش إلى الفجر
فكم من فتى أمسى وأصبح ضاحكاً *** وقد نسجت أكفانه وهو لا يدري
لقراءة القرآن الكريم و سماعه و تفسيره ........

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