ድርድር ከተዋቀረው የመረጃ ክምችት በጣም ቀላል ዓይነቶች አንዱ ነው። የማይነጣጠሉ የማስታወሻ ቦታዎች አንድ አቅጣጫዊ ድርድርን ለማከማቸት የተመደቡ በመሆናቸው እና አብዛኛዎቹ የፕሮግራም ቋንቋዎች ለማወጅ የተዋሃዱ ግንባታዎች ስላሏቸው ብዙ መረጃዎችን ወደ ተለያዩ (ቤተ-መጽሐፍትም ጨምሮ) ለማስተላለፍ እንደ ቋት ያገለግላሉ ፡፡ በምላሹም ተግባራት አንዳንድ ጊዜ ድርድርን መመለስ ያስፈልጋቸዋል።
አስፈላጊ
- - የጽሑፍ አርታኢ;
- - ሲ ወይም ሲ ++ አጠናቃሪ እና አገናኝ።
መመሪያዎች
ደረጃ 1
በተጠሪው የተመደበ እና በማጣቀሻ ባለፈ ባለ አንድ የርዝመት ድርድር ውስጥ በማስቀመጥ መረጃን ከአንድ ተግባር ወይም ዘዴ ይመልሱ። ተገቢውን የውሂብ አይነት ይግለጹ ፣ ለምሳሌ typedef int t_array10 [10] ፤ በሚፈለገው ተግባር ወይም ዘዴ መግለጫ እና አተገባበር ውስጥ ይጠቀሙበት: void ReturnArray (t_array10 & raOut) {raOut [0] = 10;} በተገቢው ሁኔታ ይደውሉ: int aNumbers [10] ፣ ReturnArray (aNumbers) ፣ የዚህ ዘዴ ጉዳቱ የድርድሩ ርዝመት መስተካከሉ ነው።
ደረጃ 2
የአመልካቹን ውሂብ በጠቋሚው ባለፈው ደዋይ በተመደበው የውጤት ቋት ውስጥ በማስቀመጥ ይመልሱ። የተግባር ወይም ዘዴ አምሳያ ያለ ምንም ዝርዝር መግለጫ በሁለቱም ድርድር ላይ የተገለፀውን ልኬት ሊኖረው ይችላል-ባዶ ባዶ አሪራይ (int anArray ፣ int nSize) ፣ ወይም እንደ ጠቋሚ-ባዶ ReturnArray (int * pnArray ፣ int nSize) ፤ በሁለቱም ውስጥ ጉዳዮችን ፣ የመለኪያ መለኪያው በድርድር ማስታወሻ ውስጥ ጥቅም ላይ ሊውል ይችላል-ባዶ ባዶ መመለስ (Int * pnArray, int nSize) {ለ (nSize--; nSize> -1; pnArray [nSize] = nSize--);} // call int aNumbers [10] ፤ ReturnArray (aNumbbers, sizeof (aNumbers) / sizeof (aNumbers [0])) ፤ ይህ ተግባሮችን ወደ ተግባር የማስተላለፍ እና ከእነሱ የመረጃ ድርድርን የመመለስ ዘዴ በአብዛኛዎቹ በአብዛኛዎቹ ጉዳዮች ላይ ጥቅም ላይ ይውላል ፡፡ C ፕሮግራሞችን ሲያዘጋጁ በዚህ መንገድ መረጃን የሚቀበሉ እና የሚመልሱ ተግባራት እና ዘዴዎች እንደ አንድ ደንብ ትክክለኛውን የመጠባበቂያ መጠን የሚያልፍበት ተጨማሪ ግቤት ሊኖራቸው ይገባል።
ደረጃ 3
በአንድ ተግባር ወይም ዘዴ ውስጥ የተፈጠረ ድርድርን ይመልሱ። በመደበኛነት ፣ በዚህ ሁኔታ አንድ ድርድር መመለስ የለበትም ፣ ግን ወደ መጀመሪያው ንጥረ ነገር ጠቋሚ int * ReturnArray () {int * pnArray = new int [10]; // ከ pnArray ጋር መመለስ pnArray;} // ለተፈጠረው ድርድር ጠቋሚ ያግኙ int * pnNumbers = ReturnArray (); // ይጠቀሙ ሰርዝ pnNumbers; // ሰርዝ ይህ ዘዴ አንዳንድ ገደቦች አሉት ፡፡ ስለዚህ ፣ ድርድሩ በክምር ውስጥ መቀመጥ አለበት። በተጨማሪም ፣ መሰረዙ ከፍጥረቱ ጋር በተዛመደ ዘዴ መከናወን አለበት (አዲስን ለመልቀቅ ነፃ ፣ ወዘተ ለማሰረዝ በሚጠቀሙበት ጊዜ ሰርዝ) ፡፡
ደረጃ 4
የ C ++ ፕሮግራሞችን በሚዘጋጁበት ጊዜ አመቻቾችን በፍጥነት ለመመለስ የመያዣ ክፍሎችን ይጠቀሙ ፡፡ ለ int የተገለጸው የ C ++ መደበኛ የአብነት ቤተ-መጽሐፍት የቬክተር ቴምፕሌት ክፍል የሆነ ድርድር የመፍጠር እና የመመለስ ምሳሌ እንደዚህ ይመስላል ፦ #include std:: vector ReturnArray () {std:: vector oArray; oArray.resize (10); oArray [0] = 100; oArray [1] = 200; return oArray;} std:: vector oArray = ReturnArray (); አብዛኛዎቹ ታዋቂ ማዕቀፎች ኃይለኛ ክፍሎችን ወይም የድርጅት ክፍል አብነቶችን እንደሚያቀርቡ ልብ ይበሉ። በተዘዋዋሪ የመረጃ መጋራት ፅንሰ-ሀሳብን በማጣቀሻ ቆጠራ እና በቅጅ-በመፃፍ ይተገብራሉ ፡፡ ስለዚህ ከእንደነዚህ ዓይነቶቹ ድርድሮች ዋጋ መመለስ በጣም በተቀላጠፈ የሚከናወን ሲሆን ከዝቅተኛ የኮምፒተር ሀብቶች ፍጆታ ጋር የተቆራኘ ነው ፡፡