herkese kolay gelsin arkadaslar..
elimde bir dizi var. dizide ad soyad yas bilgileri sıralı sekilde ve sabit uzunlukda kayıtlı. ben bu bilgileri diziden ayrı ayrı değişkenlere alırken dongu kullanıyorum.. Sorum ise ben bu bilgleri struct union kullanarak bunlara erisebilirmiyim.. union ve struct kullanarak bir byte ın bitlerine erisiyorum ama dizinin istedigim kadar bytına erişmem mumkunmudur yardımcı olabilirmisiniz...
Tesekkur ederim...
union aynı bellek adresine birden fazla değişken ismi ile erişmeye yarar.
örneğin:
union deneme{
char* ad;
char* isim;
}kisi;
int main()
{
kisi.ad = "picproje";
printf("ad = %c isim = %c\n",kisi.ad, kisi.isim);
kisi.isim = "google";
printf("isim = %c ad = %c\n",kisi.isim, kisi.ad);
return 0;
}
kisi.ad kısmına picproje dediğimizde kisi.isim'de aynı adreste olduğundan kisi.isim'de picproje olur
kisi.isim kısmına google dediğimizde kisi.ad'da aynı adreste olduğundan kisi.ad'da google olur
Bence sizin union ile bir işiniz yok.
Struck ta diziler için örnek: http://kursattopcuoglu.blogspot.com/2010/06/ilk-donem-final-sorusuna-benzer-bir.html (http://kursattopcuoglu.blogspot.com/2010/06/ilk-donem-final-sorusuna-benzer-bir.html)
cevabınız için tesekkur ederim ama burada anladıgım kadarı ile struct içindeki değişkenlere verileri yazmak için dongu kullanılmıs. ben direk bitlere erisir gibi dizinin belirli bolgesine erişmek okumak yazmak istiyorum;
kisi.isim="deneme";
soyad = kisi.soyad;
seklinde kısaca yani.
veridiginiz linki yanlıs yorumladı isem kusura bakmayın
dizideki değer: "deneme" diyelim, amacınız örneğin: baştan 3. karakter olan 'n' karakterine erişmek ve gerektiğinde değiştirmek mi?
hayır hocam tam olarak su sekilde;
elimde bir dizi var
dizinin içerigi "enis aslan 21"
10byte isim için 10byte soyisim için 2 byte yas için
dizi.isim dedigim zaman "enis " seklinde almak istiyorum veriyi
yada değiştiriken dizi.isim="deneme "; seklinde değiştirmek istiyorum..
dizinin belirli kısımlarına erişmek istiyorum yani
Bu konuda yardımcı olabilecek kimse yok mu
Alıntı yapılan: brlesc - 16 Ağustos 2013, 13:43:30
Bu konuda yardımcı olabilecek kimse yok mu
Malesef yok. Çünkü istediğiniz şekilde veri almanız mümkün değil.
Ama verinin başladığı noktanın adresini alabilirsin.
C'de "=" operatörünü o şekilde kullanamazsınız.
Anladım hocam teşekkür ederim cevaplarınız için