কম্পিউটার

কিভাবে একটি C++ ফাংশন থেকে স্থানীয় অ্যারে ফিরিয়ে আনতে হয়?


একটি স্থানীয় অ্যারে সরাসরি একটি 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 <<"The array elements are: ";
   for(int i = 0; i<10; i++) {
      cout<< ptr[i] <<" ";
   }
   return 0;
}

আউটপুট

উপরের প্রোগ্রামের আউটপুট নিম্নরূপ।

The array elements are: 1 2 3 4 5 6 7 8 9 10

এখন আসুন উপরের প্রোগ্রামটি বুঝতে পারি।

retArray() ফাংশনে একটি স্ট্যাটিক অ্যারে অ্যারে সংজ্ঞায়িত করা হয়। তারপর এই অ্যারে শুরু করার জন্য একটি লুপ ব্যবহার করা হয়। অবশেষে অ্যারে অ্যারে ফেরত দেওয়া হয়। কোড স্নিপেট যা এটি দেখায় তা নিম্নরূপ।

int *retArray() {
   static int arr[10];
   for(int i = 0; i<10; i++) {
      arr[i] = i+1;
   }
   return arr;
}

main() ফাংশনে, retArray() ফাংশনটিকে বলা হয় এবং ptr অ্যারে অ্যারের শুরুতে নির্দেশ করে। অ্যারের উপাদানগুলি একটি লুপ ব্যবহার করে প্রদর্শিত হয়। কোড স্নিপেট যা এটি দেখায় তা নিম্নরূপ।

int main() {
   int *ptr = retArray();
   cout <<"The array elements are: ";
   for(int i = 0; i<10; i++) {
      cout<< ptr[i] <<" ";
   }
   return 0;
}

  1. কিভাবে একটি জাভাস্ক্রিপ্ট ফাংশন থেকে একটি স্ট্রিং ফেরত?

  2. কিভাবে একটি জাভাস্ক্রিপ্ট ফাংশন থেকে একটি মান ফেরত?

  3. কিভাবে একটি জাভাস্ক্রিপ্ট ফাংশন থেকে একটি বস্তু ফেরত?

  4. আমি কিভাবে নতুন ব্যবহার করে C++ এ একটি 2d ​​অ্যারে ঘোষণা করব