Şimdi Ara

Int 12 byte yer kaplıyor.

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
5
Cevap
0
Favori
480
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhaba arkadaşlar

    int x = 3, y = 4, z = 5, *px=&x, *py=&y, *pz=&z;
    char a = 'd', b = 'F', *pa = &a, *pb = &b;
    float d = 1.01, e = 3.14, *pd = &d, *pe = &e;
    printf("%u\n%u\n%u\n%u\n%u\n%u\n%u", px, py, pz, pa, pb, pd, pe);

    yukarıdaki programın çıktısını aşağıda gibi alıyorum;

    3602304
    3602292
    3602280
    3602235
    3602223
    3602184
    3602172

    bellek adresleri sondan başa doğru atanıyor ve int 12 byte yer kaplıyor gibi gözüküyor, bilgisayarım 64 bit.
    Yazdığım kodda sorun mu var?



  • Öyle bakılmaz ona. sizeof(x) şeklinde yazacaksın.
  • demek istediğim o değildi bellek adresleri arasında 12 byte lık boşluklar var
  • Senin yazdırdığın adresler değişkenlerin bellekteki başlangıç adresleri. x in adresi ...12 iken y nin adresi ...24 diyorsun. İyi de bunların bellekte ardışık olarak bulunacağının bir garantisi yok. Bu garantiyi istiyorsan dizi, struct vs. kullanman gerekir.
  • 4kalan kullanıcısına yanıt
    aynen öyle demek istedim hocam teşekkür ederim açıklama için
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.