البرمجة

حل مشكلة ‘Invalid types for array subscript’ في لغة C++

في هذا السياق، يبدو أنك تواجه مشكلة في تصحيح الأخطاء في كود C++ الذي كتبته. يظهر لديك رسالة خطأ تشير إلى “Invalid types ‘int[int]’ for array subscript” في الأسطر 13 و 14، ورسالة خطأ أخرى في السطر 8 تشير إلى “expected ‘;’ before ‘a'”.

لحل مشكلة الأسطر 13 و 14، يبدو أن الخطأ يكمن في تعريف المؤشر a وتخصيصه كمصفوفة ثنائية الأبعاد بطريقة غير صحيحة. يمكنك تصحيح ذلك بتعديل السطر 8 إلى:

cpp
int (*a)[10] = new int[10][10]; // تعريف مؤشر على مصفوفة ثنائية الأبعاد

هذا سيقوم بتحديد a كمؤشر على مصفوفة بحيث تحتوي كل صف في المصفوفة على 10 عناصر.

أما بالنسبة لرسالة الخطأ في السطر 8، يبدو أنها تحدث بسبب وجود فراغ غير صحيح بين new int و a[10][10]، يمكنك تصحيح ذلك كما يلي:

cpp
int (*a)[10] = new int[10][10]; // تعريف مؤشر على مصفوفة ثنائية الأبعاد

الآن، يجب أن يتم تشغيل البرنامج بدون الأخطاء المذكورة. يمكنك استخدام هذا التصحيح لتصحيح الأخطاء في الشيفرة الخاصة بك والاستمرار في تطويرها.

المزيد من المعلومات

في هذا الكود، يبدو أن هناك بعض الأخطاء في تعريف المصفوفة واستخدامها. في الخط 8، قمت بتعريف مؤشر إلى صفر ثم استخدمت عبارة “new int a[10][10]” للتخصيص للمصفوفة، ولكن هذا ليس الطريقة الصحيحة للقيام بذلك. يجب عليك تعريف المؤشر بشكل صحيح لتكون مصفوفة ثنائية الأبعاد.

بدلاً من ذلك، قم بتعريف المؤشر كمؤشر إلى مصفوفة ثنائية الأبعاد باستخدام “new int*[10]” لتخصيص صفوف المصفوفة، ثم في كل صف قم بتخصيص عدد من الأعمدة باستخدام “new int[10]”، وقم بتعيين عناوين الصفوف للمؤشر الرئيسي. فيما يلي تعديل على الكود:

cpp
#include #include using namespace std; int main() { int **a; // تعريف مؤشر للمصفوفة a = new int *[10]; // تخصيص صفوف المصفوفة for (int i = 0; i < 10; ++i) { a[i] = new int[10]; // تخصيص عدد الأعمدة في كل صف } for (int z = 0; z < 10; z++) { for (int y = 0; y < 10; y++) { a[z][y] = y; // تعيين قيم للعناصر في المصفوفة cout << "\t" << a[z][y] << endl; } } // الإفراج عن الذاكرة بعد الانتهاء for (int i = 0; i < 10; ++i) { delete[] a[i]; } delete[] a; return 0; }

بهذا التعديل، يجب أن تتجنب الأخطاء التي تظهر في الأسطر 8، 13، و14، وتكون قادرًا على استخدام المصفوفة ثنائية الأبعاد بشكل صحيح في برنامجك.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

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