المصفوفات هي واحدة من أبسط أشكال تخزين البيانات المنظمة. نظرًا لأن مناطق الذاكرة غير القابلة للتجزئة مخصصة لتخزين المصفوفات أحادية البعد ، ولأن معظم لغات البرمجة لها تركيبات نحوية لإعلانها ، يتم استخدامها بشكل مكثف كمخازن لنقل كميات كبيرة من المعلومات إلى وظائف مختلفة (بما في ذلك المكتبة). في المقابل ، تحتاج الوظائف أحيانًا إلى إرجاع مصفوفة.
ضروري
- - محرر النص؛
- - مترجم و رابط C أو C ++.
تعليمات
الخطوة 1
إرجاع البيانات من دالة أو طريقة بوضعها في مصفوفة ذات طول ثابت ، يخصصها المتصل ، ويمررها المرجع. حدد نوع البيانات المناسب ، على سبيل المثال: typedef int t_array10 [10] ؛ استخدمه في إعلان وتنفيذ الوظيفة أو الطريقة المطلوبة: void ReturnArray (t_array10 & raOut) {raOut [0] = 10؛} استدعاء مناسب: int aNumbers [10] ؛ ReturnArray (aNumbers) ؛ عيب هذه الطريقة هو أن طول المصفوفة ثابت.
الخطوة 2
قم بإرجاع بيانات الصفيف عن طريق وضعها في مخزن إخراج مؤقت مخصص للمتصل يتم تمريره بواسطة المؤشر. يمكن أن يحتوي النموذج الأولي للدالة أو الأسلوب على معلمة تم الإعلان عنها في تدوين المصفوفة بدون تحديد الحجم: void ReturnArray (int anArray ، int nSize) ؛ أو كمؤشر: void ReturnArray (int * pnArray، int nSize) ؛ في كليهما الحالات ، يمكن استخدام معلمة المعرف في تدوين المصفوفة: void ReturnArray (int * pnArray، int nSize) {for (nSize--؛ nSize> -1؛ pnArray [nSize] = nSize--)؛} // call int aNumbers [10] ؛ ReturnArray (aNumbers ، sizeof (aNumbers) / sizeof (aNumbers [0])) ؛ تُستخدم هذه الطريقة لتمرير المصفوفات إلى الوظائف وإرجاع بيانات المصفوفة منها في الغالبية العظمى من الحالات عند تطوير برامج C. يجب أن تحتوي الوظائف والطرق التي تقبل البيانات وتعيدها بهذه الطريقة ، كقاعدة عامة ، على معلمة إضافية يتم من خلالها تمرير الحجم الفعلي للمخزن المؤقت.
الخطوه 3
إرجاع مصفوفة تم إنشاؤها في دالة أو طريقة. بشكل رسمي ، في هذه الحالة ، لا يجب إرجاع مصفوفة ، ولكن يجب إرجاع مؤشر لعنصرها الأول: int * ReturnArray () {int * pnArray = new int [10]؛ // work with pnArray return pnArray؛} // احصل على مؤشر إلى المصفوفة التي تم إنشاؤها int * pnNumbers = ReturnArray ()؛ // use delete pnNumbers؛ // حذف هذه الطريقة لها بعض القيود. لذلك ، يجب وضع المصفوفة في كومة. بالإضافة إلى ذلك ، يجب أن يتم حذفها بالطريقة المقابلة للإنشاء (احذف في حالة استخدام new ، free for malloc ، إلخ).
الخطوة 4
استخدم فئات الحاويات لإرجاع المصفوفات بسهولة عند تطوير برامج C ++. مثال على إنشاء وإرجاع مصفوفة تمثل كائنًا من فئة قالب المتجه لمكتبة القوالب القياسية C ++ المحددة لـ int قد تبدو كما يلي: #include std:: vector ReturnArray () {std:: vector oArray؛ oArray.resize (10) ؛ o صفيف [0] = 100 ؛ o صفيف [1] = 200 ؛ return oArray؛} std:: vector oArray = ReturnArray () ؛ لاحظ أن معظم الأطر الشائعة توفر فئات قوية أو قوالب لفئات المصفوفات. غالبًا ما يقومون بتنفيذ مفهوم مشاركة البيانات الضمنية مع عد المرجع والنسخ عند الكتابة. لذلك ، يتم تنفيذ الإرجاع حسب قيمة هذه المصفوفات من الوظائف بكفاءة عالية ويرتبط بحد أدنى من استهلاك موارد الحوسبة.