"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > C++ में किसी फ़ंक्शन से ऐरे कैसे लौटाएं?

C++ में किसी फ़ंक्शन से ऐरे कैसे लौटाएं?

2024-12-22 को प्रकाशित
ब्राउज़ करें:314

How to Return an Array from a Function in C  ?

सी में एक फ़ंक्शन से एरे लौटाना

आप पॉइंटर्स का उपयोग करके सी में एक फ़ंक्शन से एक एरे वापस कर सकते हैं। हालाँकि, यदि सरणी ठीक से आवंटित नहीं की गई है तो इससे समस्याएँ हो सकती हैं।

आपके उदाहरण में, आप स्टैक पर आवंटित एक सरणी को वापस करने का प्रयास कर रहे हैं। फ़ंक्शन के वापस आने पर यह अपरिभाषित व्यवहार का कारण बन सकता है।

इस समस्या से बचने के लिए, आप नए ऑपरेटर का उपयोग करके ढेर पर सरणी आवंटित कर सकते हैं। फिर आप आवंटित सरणी में एक पॉइंटर लौटा सकते हैं।

int* uni(int *a, int *b) {
    int *c = new int[10];
    int i = 0;
    while (a[i] != -1) {
        c[i] = a[i];
        i  ;
    }
    for (; i 

फिर आप सरणी तक पहुंचने के लिए लौटाए गए पॉइंटर का उपयोग कर सकते हैं।

int main() {
    int a[10] = {1, 3, 3, 8, 4, -1, -1, -1, -1, -1};
    int b[5] = {1, 3, 4, 3, 0};
    int *c = uni(a, b);
    for (int i = 0; i 

यह आउटपुट देगा:

1 3 3 8 4 1 3 4 3 0

एक अन्य विकल्प सरणी को लपेटने के लिए एक संरचना का उपयोग करना है। इसे मूल्य द्वारा वापस किया जा सकता है, और संरचना की प्रतिलिपि बनाई जाएगी, जिसमें वह आंतरिक सरणी भी शामिल है।

struct myArray {
    int array[10];
};

myArray uni(int *a, int *b) {
    myArray c;
    int i = 0;
    while (a[i] != -1) {
        c.array[i] = a[i];
        i  ;
    }
    for (; i 

यह भी आउटपुट देगा:

1 3 3 8 4 1 3 4 3 0
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3