SORU
29 Ocak 2009, PERŞEMBE


Nasıl ''(bir işaretçi bir dizi işaret) boyutu bulmak için?

Öncelikle, burada bazı kod

int main() 
{
    int days[] = {1,2,3,4,5};
    int *ptr = days;
    printf("%u\n", sizeof(days));
    printf("%u\n", sizeof(ptr));

    return 0;
}

Bir şekilde ptr işaret ettiğini dizinin boyutu (yerine sadece dört bayt bir boyutu, veren) var mı?

CEVAP
29 Ocak 2009, PERŞEMBE


Hayır, yapamazsın. Derleyici işaretçi işaret ederek ne olduğunu bilmiyor. Hileler, bant, bilinen bir değer ile dizinin sonu geldi ve daha sonra boyutunu sayım o kadar değeri var, ama bu boyutu kullanarak değil.

Başka bir hile, bir boyutu, bir yere saklamak için Zan tarafından belirtilir. Örneğin, eğer dinamik olarak tahsis dizi, tahsis bloğu bir int daha büyük bir ihtiyacın, zula boyutu ilk int ve iade Ao 1 olarak işaretçi dizi. Boyutu ihtiyacınız olduğunda, işaretçi ve tepede bulunan eksiltme değer saklanmış. Sadece bütün Sokağı baştan başlayarak, ve sadece dizi değil ücretsiz unutmayın.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 2ndfloor91

    2ndfloor91

    17 Kasım 2007
  • ChasesAndCrashes

    ChasesAndCra

    31 Temmuz 2009
  • kamaniusilelis

    kamaniusilel

    10 HAZİRAN 2011