SORU
13 AĞUSTOS 2010, Cuma


Bir fonksiyon içinde Return dizi

6* *bir işleve geçirilen bir dizi int arr[5] var:

int fillarr(int arr[])
{
    for(...);
    return arr;
}
  1. Bu dizi nasıl dönebilirim?
  2. Nasıl kullanılacağını, geri döndüm ki bir işaretçi nasıl erişmek için gidiyorum ben?

CEVAP
13 AĞUSTOS 2010, Cuma


Bu durumda, eğer dizi değişken arr gerçekten de örtülü bir dönüştürme tarafından bellekte dizinizi blok, başlangıcına bir işaretçi olarak tedavi edilebilir. Bu kullandığınız komut:

int fillarr(int arr[])

Sadece sözdizimsel şeker. Gerçekten bu ile değiştirin ve hala işe yarar:

int fillarr(int* arr)

İşlevinden dönmek istediğini aynı anlamda, aslında dizideki ilk öğe için bir işaretçi.

int* fillarr(int arr[])

Ve hala senin gibi kullanmak mümkün olacak normal bir dizi:

int main()
{
  int y[10];
  int *a = fillarr(y);
  cout << a[0] << endl;
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Joseph Herscher

    Joseph Hersc

    14 Mart 2007
  • Noam Erez

    Noam Erez

    3 NİSAN 2012
  • talkandroid

    talkandroid

    27 Mayıs 2010