Nasıl ''(bir işaretçi bir dizi işaret) boyutu bulmak için? | Netgez.com
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

  • 24 Канал

    24 КанаÐ

    5 ÅžUBAT 2006
  • Gimpology.com Video Tutorials

    Gimpology.co

    3 ÅžUBAT 2008
  • Mindy

    Mindy

    20 NİSAN 2006