কম্পিউটার টিউটোরিয়াল

C++-এ ফাংশন থেকে লোকাল অ্যারে রিটার্ন কীভাবে করবেন?


একটি লোকাল অ্যারে সরাসরি C++ ফাংশন থেকে রিটার্ন করা যায়না কারণ ফাংশন কলের পর সেটি মেমরিতে থাকতে পারে না। এই সমস্যা সমাধান করার একটি উপায় হল ফাংশনে static অ্যারে ব্যবহার করা। যেহেতু static অ্যারের লাইফটাইম পুরো প্রোগ্রাম, তাই উপরের সমস্যা ছাড়া সহজে এটি 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() ফাংশনে, একটি static অ্যারে arr ডিফাইন করা হয়েছে। তারপর একটি for লুপ ব্যবহার করে এই অ্যারে ইনিশিয়ালাইজ করা হয়েছে। অবশেষে অ্যারে arr রিটার্ন করা হয়েছে। এটি দেখানোর কোড স্নিপেট নিচে দেওয়া হল।

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

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

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++-এ new ব্যবহার করে ডাইনামিক ২D অ্যারে ঘোষণা