struct ve union ile dizi erişimi

Başlatan brlesc, 15 Ağustos 2013, 22:34:48

brlesc

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...
edeb ya hu...

Gökhan BEKEN

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
Özel mesaj okumuyorum, lütfen göndermeyin.

brlesc

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
edeb ya hu...

Gökhan BEKEN

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?
Özel mesaj okumuyorum, lütfen göndermeyin.

brlesc

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
edeb ya hu...

brlesc

Bu konuda yardımcı olabilecek kimse yok mu
edeb ya hu...

Klein

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. 

brlesc

Anladım hocam teşekkür ederim cevaplarınız için
edeb ya hu...