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

  • funbro1

    funbro1

    11 Aralık 2007
  • jbignacio

    jbignacio

    13 Mart 2006
  • tsweeney79

    tsweeney79

    21 Ocak 2008