Naked Pointer etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Naked Pointer etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

24 Temmuz 2018 Salı

Naked Pointer

Giriş
Açıklaması şöyle.
When an array decays, it converts into a pointer to the first element. In the case of int a[3][4], a is an array of int[4], so a pointer to an element of int [3][4] has type int (*)[4].
Tek Boyutlu Array
Şöyle yaparız.
void foo(int a[])
Eğer uzunluğu belirtmek istersek şöyle yaparız ancak uzunluk bilgisi kaybolur çünkü
void foo(int a[3]);
derleyici yarafından şu hale çevrilir.
void foo(int *a)
Dolayısıyla şöyle yaparız.
void foo(int* a, int size1);
İki Boyutlu Array
Eğer uzunluğu belirtmek istersek şöyle yaparız ancak uzunluk bilgisi kaybolur çünkü
void foo(int a[3][4])
Derleyici yarafından şu hale çevrilir.
void foo(int (*a)[4])
Uzunlukları belirtmek istersek şöyle yaparız.
void foo(int* a, int size1, int size2);
Decay Olmaması
Metodun imzasını şöyle yaparsak pointer decay olmaz.
void f (int (&a)[5]);