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

  • celebrateubuntu

    celebrateubu

    23 Mayıs 2011
  • Huot Media

    Huot Media

    7 Mayıs 2010
  • ipsy

    ipsy

    1 EKİM 2012