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

  • Bratayley

    Bratayley

    30 Aralık 2010
  • SaMmM123

    SaMmM123

    3 Mayıs 2006
  • Thom Hall

    Thom Hall

    24 Kasım 2006