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

  • BrandonHarrisWalker

    BrandonHarri

    27 Kasım 2006
  • jkimisyellow

    jkimisyellow

    6 Mayıs 2009
  • Kai Moosmann

    Kai Moosmann

    5 Temmuz 2006