एक लोकल सरणी को C++ फंक्शन से सीधे नहीं लौटाया जा सकता क्योंकि फंक्शन कॉल के बाद यह मेमोरी में मौजूद नहीं रह सकती। इसे हल करने का एक तरीका फंक्शन में स्टैटिक सरणी का उपयोग करना है। चूंकि स्टैटिक सरणी का जीवनकाल पूरा प्रोग्राम होता है, इसे ऊपर बताई गई समस्या के बिना C++ फंक्शन से आसानी से लौटाया जा सकता है।
इसे प्रदर्शित करने वाला एक प्रोग्राम निम्नलिखित है।
उदाहरण
#include <iostream> using namespace std; int *retArray() { static int arr[10]; for(int i = 0; i<10; i++) { arr[i] = i+1; } return arr; } int main() { int *ptr = retArray(); cout <<"सरणी के एलिमेंट्स हैं: "; for(int i = 0; i<10; i++) { cout<< ptr[i] <<" "; } return 0; } आउटपुट
उपरोक्त प्रोग्राम का आउटपुट निम्नलिखित है।
सरणी के एलिमेंट्स हैं: 1 2 3 4 5 6 7 8 9 10
अब आइए उपरोक्त प्रोग्राम को समझते हैं।
retArray() फंक्शन में, एक स्टैटिक सरणी arr परिभाषित की गई है। फिर इस सरणी को इनिशियलाइज़ करने के लिए फॉर लूप का उपयोग किया जाता है। अंत में सरणी arr लौटाई जाती है। इसे दिखाने वाला कोड स्निपेट निम्नलिखित है।
int *retArray() { static int arr[10]; for(int i = 0; i<10; i++) { arr[i] = i+1; } return arr; } main() फंक्शन में, retArray() फंक्शन कॉल किया जाता है और ptr सरणी arr की शुरुआत की ओर इशारा करता है। फॉर लूप का उपयोग करके सरणी एलिमेंट्स प्रदर्शित किए जाते हैं। इसे दिखाने वाला कोड स्निपेट निम्नलिखित है।
int main() { int *ptr = retArray(); cout <<"सरणी के एलिमेंट्स हैं: "; for(int i = 0; i<10; i++) { cout<< ptr[i] <<" "; } return 0; }