Массив нь бүтэцлэгдсэн өгөгдөл хадгалах хамгийн энгийн хэлбэрүүдийн нэг юм. Санах ойн хуваагдаагүй хэсгүүдийг нэг хэмжээст массивыг хадгалах зориулалтаар хуваарилдаг бөгөөд ихэнх програмчлалын хэлэнд тунхаглах синтаксийн бүтэц байдаг тул тэдгээрийг их хэмжээний мэдээллийг төрөл бүрийн (түүний дотор номын сан) функцэд шилжүүлэх буфер болгон ашигладаг. Эргээд функцууд заримдаа массивыг буцааж өгөх шаардлагатай болдог.
Шаардлагатай
- - текст засварлагч;
- - 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--);} // int aNumbers руу залгах [10]; ReturnArray (aNumbers, sizeof (aNumbers) / sizeof (aNumbers [0])); Массивуудыг функцэд дамжуулах, массивын өгөгдлийг эдгээр аргаар буцаах аргыг С програм боловсруулах явцад ихэнх тохиолдолд ашигладаг. өгөгдлийг ийм байдлаар хүлээн авч, буцааж өгөх функцууд ба аргууд нь дүрмийн дагуу буферын бодит хэмжээг дамжуулах нэмэлт параметртэй байх ёстой.
Алхам 3
Функц эсвэл аргаар бүтээсэн массивыг буцаана. Албан ёсоор энэ тохиолдолд массивыг буцааж өгөх ёсгүй, харин эхний элементийн заагчийг буцааж өгөх ёстой: int * ReturnArray () {int * pnArray = new int [10]; // pnArray-той ажиллах return pnArray;} // үүсгэсэн массив руу заагч авах int * pnNumbers = ReturnArray (); // delete pnNumbers ашиглах; // устгах Энэ арга нь зарим хязгаарлалттай байдаг. Тиймээс массив нь нуруулдан байрлалтай байх ёстой. Нэмж дурдахад түүнийг устгах нь бүтээлд тохирох аргаар хийгдэх ёстой (шинэ, malloc үнэгүй ашиглах тохиолдолд устгах гэх мэт).
Алхам 4
C ++ програм боловсруулахдаа массивыг эвтэйхэн буцаахын тулд контейнерын ангиудыг ашигла. Int-д заасан C ++ Standard Template Library-ийн вектор загвар ангийн объект болох массивыг үүсгэх, буцаах жишээ нь дараах байдалтай байж болох юм: #include std:: vector ReturnArray () {std:: vector oArray; oArray.resize (10); oArray [0] = 100; oArray [1] = 200; return oArray;} std:: vector oArray = ReturnArray (); Алдартай фрэймворкуудын ихэнх нь хүчирхэг анги эсвэл массив ангийн загвараар хангадаг болохыг анхаарна уу. Тэд ихэвчлэн далд тоолох, хуулбарлах хэлбэрээр далд хэлбэрээр мэдээлэл хуваалцах ойлголтыг хэрэгжүүлдэг. Тиймээс функцээс ийм массивын утгыг буцаах нь маш үр дүнтэй хийгддэг бөгөөд тооцоолох нөөцийн хамгийн бага хэрэглээтэй холбоотой байдаг.