البرمجة

كيفية إنشاء مصفوفة ديناميكية في C++

في C++، يمكنك استخدام الذاكرة الديناميكية لإنشاء مصفوفة بحجم غير معروف في البداية وزيادة حجمها حسب الحاجة. يمكن القيام بذلك باستخدام مؤشر إلى المصفوفة واستخدام العمليات new و delete[] لإنشاء وحذف المصفوفة. هناك أمثلة كثيرة لكيفية تحقيق ذلك، وإليك كيف يمكنك القيام بذلك بشكل أساسي:

cpp
#include int main() { int *array = nullptr; // بدايةً، نعرف مؤشرًا إلى المصفوفة ونهيئه بقيمة nullptr int size = 0; // نهيئ حجم المصفوفة بصفر int value; while (std::cin >> value && value != 0) { // نقرأ القيم من المستخدم حتى نصل إلى القيمة صفر int *tempArray = new int[size + 1]; // إنشاء مصفوفة مؤقتة بحجم أكبر بوحدة من المصفوفة الحالية for (int i = 0; i < size; ++i) { // ننقل القيم الحالية إلى المصفوفة المؤقتة tempArray[i] = array[i]; } tempArray[size] = value; // نضيف القيمة الجديدة إلى المصفوفة المؤقتة delete[] array; // نحذف المصفوفة الحالية array = tempArray; // نعيد تعيين المؤشر ليشير إلى المصفوفة الجديدة ++size; // نزيد حجم المصفوفة بواحد } // عرض القيم الموجودة في المصفوفة for (int i = 0; i < size; ++i) { std::cout << array[i] << " "; } std::cout << std::endl; delete[] array; // نحذف المصفوفة بعد الانتهاء من استخدامها return 0; }

هذا الكود يبدأ بتعريف مؤشر إلى int وتهيئته بقيمة nullptr للإشارة إلى أنه لم يتم تخصيص أي مصفوفة بعد. ثم، يقوم بقراءة القيم المدخلة من المستخدم وتخزينها في مصفوفة تنمو ديناميكيًا كلما تم إدخال قيم جديدة.

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

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

هذه العملية تتكرر حتى يتم إدخال القيمة صفر، مما يعني الانتهاء من إدخال الأرقام. بعد ذلك، يتم عرض القيم الموجودة في المصفوفة باستخدام حلقة for، وأخيرًا يتم حذف المصفوفة عن طريق delete[] لتحرير الذاكرة التي تم تخصيصها ديناميكيًا.

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

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

هذا المحتوى محمي من النسخ لمشاركته يرجى استعمال أزرار المشاركة السريعة أو تسخ الرابط !!