نحوه ی قرار دادن آرایه به عنوان مقدار برگشتی یک تابع

javadvjj

Member
چگونه می توان یک آرایه را به عنوان مقدار برگشتی یک تابع در c++ قرار داد یعنی:
کد:
[FONT=Tahoma]return array[];[/FONT]
کمک کنید خیلی فروم کم کار شده دیگه هیچ کس جواب نمی ده
 

the_king

مدیرکل انجمن
چگونه می توان یک آرایه را به عنوان مقدار برگشتی یک تابع در c++ قرار داد یعنی:
کد:
[FONT=Tahoma]return array[];[/FONT]
کمک کنید خیلی فروم کم کار شده دیگه هیچ کس جواب نمی ده

توجه داشته باشید که وظیفه ایجاد کردن و تخصیص دادن حافظه به آرایه بازگشتی با تابع شما است، اما پاک کردن
آن آرایه خارج از تابع انجام می شود. اگه نوع داده داخل آرایه مشخص است، آنرا بنویسید مثلا *int
برای آرایه هایی که نوع داده داخلش مشخص نیست از *void استفاده کنید.
حتما آرایه را در زمانی که کارتان با آن تمام شد delete کنید.

مثال زیر یک آرایه 6 خانه ای از نوع int را می سازد و بر می گرداند :
کد:
int* [B]myFunc[/B]()
{
    int* array = new int[6];
    return array;
}

و کد زیر خروجی این تابع را دریافت می کند و سپس آرایه را حذف می کند :
کد:
    int* a = [B]myFunc[/B]();
    delete[] a;

یک مثال کامل تر، یک آرایه 6 خانه ای از نوع int را با اعداد 0 الی 5 پر می کند و بر می گرداند :
کد:
int* [B]myFunc[/B]()
{
    int* array = new int[6];
    for (int i = 0; i < 6; i++)
        array[i] = i;
    return array;
}

و کد زیر این اعداد را دریافت کرده و نمایش می دهد :
کد:
    int* a = [B]myFunc[/B]();
    for (int i = 0; i < 6; i++)
        cout << a[i] << ", ";
    delete[] a;

کد کامل یک مثال :
کد:
#include <conio.h>
#include <iostream.h>

using namespace std;

int* myFunc()
{
    int* array = new int[6];
    for (int i = 0; i < 6; i++)
        array[i] = i;
    return array;
}

int main()
{
    int* a = myFunc();
    for (int i = 0; i < 6; i++)
        cout << a[i] << ", ";
    delete[] a;
    getch();
    return 0;
}
 

جدیدترین ارسال ها

بالا