"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف يمكننا تنفيذ المصفوفات الخشنة في C/C++؟

كيف يمكننا تنفيذ المصفوفات الخشنة في C/C++؟

تم النشر بتاريخ 2024-11-17
تصفح:296

How Can We Implement Jagged Arrays in C/C  ?

فهم المصفوفات الخشنة في C/C

في حين أن مفهوم المصفوفات الخشنة، حيث يمكن أن يكون للصفوف أطوال مختلفة، غير مدعوم بشكل مباشر في C/C القياسي، هناك تقنيات لتحقيق وظائف مماثلة.

عند محاولة الإعلان عن مصفوفة خشنة في C/C كما هو موضح أدناه:

int jagged[][] = { {0,1}, {1,2,3} };

أخطاء المترجم، مع تسليط الضوء على متطلبات التحديد حدود لجميع الأبعاد ما عدا الأول. للتغلب على هذا القيد، هناك طريقة بديلة تتمثل في استخدام مجموعة من المؤشرات.

إنشاء مصفوفات خشنة باستخدام مجموعة من المؤشرات

في لغة C، يمكن تنفيذ مصفوفة خشنة باستخدام مجموعة من المؤشرات. يشير كل عنصر في هذه المصفوفة إلى مصفوفة فرعية مخصصة ديناميكيًا، حيث يكون لكل مصفوفة فرعية طولها المتغير.

على سبيل المثال:

int *jagged[5];

// Assign memory to each subarray
jagged[0] = malloc(sizeof(int) * 10);
jagged[1] = malloc(sizeof(int) * 3);

// Accessing elements
*jagged[0] = 0;
*(jagged[0]   1) = 1;

*jagged[1] = 1;
*(jagged[1]   1) = 2;
*(jagged[1]   2) = 3;

// Free memory after use
free(jagged[0]);
free(jagged[1]);

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

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3