Arama butonu
Bu konudaki kullanıcılar: 1 misafir
4
Cevap
635
Tıklama
0
Öne Çıkarma
Int 12 byte yer kaplıyor.
S
12 yıl (344 mesaj)
Yüzbaşı
Konu Sahibi

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?

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



G
12 yıl (8718 mesaj)
Yarbay

Öyle bakılmaz ona. sizeof(x) şeklinde yazacaksın.


Bu mesaja 1 cevap geldi.
S
12 yıl (344 mesaj)
Yüzbaşı
Konu Sahibi

demek istediğim o değildi bellek adresleri arasında 12 byte lık boşluklar var


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @elektro_gadget
4
12 yıl (255 mesaj)
Teğmen

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.


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @Fdumanli
S
12 yıl (344 mesaj)
Yüzbaşı
Konu Sahibi

aynen öyle demek istedim hocam teşekkür ederim açıklama için




Bu mesajda bahsedilenler: @4kalan
DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.