|
|
| |||||||
![]() |
| | Seçenekler |
|
#1
| |||
| | |||
Bir Pointer DizisiBIR POINTER DIZISI BUYUKDIN.C: ================================================== ============== Kod: Kod: main(){struct hayvan {char ismi[25];char cinsi[25];int yasi;} *evcil[12], *point; /* bu, 13 tane pointer ve0 degisken tanimliyor */int index;/* ilk once, dinamik sahayi ivir zivirla dolduralim. */for (index = 0;index < 12;index++) {evcil[index] = (struct hayvan *)malloc(sizeof(struct hayvan));strcpy(evcil[index]->ismi,"General");strcpy(evcil[index]->cinsi,"Karisik cins");evcil[index]->yasi = 4;}evcil[4]->yasi = 12; /* Bu atamalar, bazi sahalara */evcil[5]->yasi = 15; /* nasil luzumsuz bilgi */evcil[6]->yasi = 10; /* yazilabilecegini gosterir. *//* yukarda tanimladiklarimizi yazalim. */for (index = 0;index <12;index++) {point = evcil[index];printf("%s, bir %s, ve %d yasindadir. ", point->ismi,point->cinsi, point->yasi);}/* Iyi programlama teknigi, dinamik yaratilmis sahanin, *//* sisteme iade edilmesini soyler.. */for (index = 0;index < 12;index++)free(evcil[index]);} Bu program, bir oncekine cok benzer. Basit tutmak icin, 12 elemanlik bir pointer dizisi tanimliyoruz, ve bir "point" isimli bir pointer daha tanimliyoruz. Size yeni olan "*evcil[12]" terimini biraz anlatmakta fayda var. Burada yaptigimiz 12 tane pointer'dan olusan bir dizi tanimladik. Ilki "evcil[0]" ve sonuncusu "evcil[11]". Aslinda, bir diziyi indekssiz kullanmak, o dizinin adresini verdiginden, kendi basina "evcil" demekle, pointerin pointerini tanimlamis oluyoruz. Bu C de tumuyle yasaldir, ve hatta daha ileri de gidebilirsiniz - fakat cabucak kafaniz karisir. Dolayisi ile, "int ****pt" demek, yasaldir, ve bu bir pointer'in pointer'inin pointer'inin pointer'ini tanimlar - sayet dogru saydiysam. Iyice C ye alisincaya kadar bu tip seylerden kacinmanizi tavsiye ederim. Simdi, 12 tane pointer'imiz var, ve biz bunlar herhangi bir pointer gibi kullanabiliriz. Bir dongu icinde kendimize dinamik yer acip, icine istedigimiz verileri yazabiliriz. Rastgele secilmis bazi sahalara yeniden bilgi atadiktan sonra, ekrana sonuclari yaziyoruz. "point" isimli pointer, sadece size gosterme amaci ile kullanilmistir. Veri, "evcil[n]" diyerek tanimlanabilirdi. Son olarak 12 veri bloku "free" ile serbest birakilir ve program sona erer. |
![]() |
| Seçenekler | |
| |
Benzer Konular | ||||
| Konu | Konu Açanlar | Forum | Cevaplar | Güncel Mesajlar |
| Aşk-ı Memnu Dizisi Fan Sitesi | denizcakmak | Ücretsiz uzantılı siteler | 0 | 04-09-2008 08:09 |
| yol arkadaşım dizisi | eniskartal | Forum siteleri | 0 | 07-07-2008 10:56 |
| Arka Sıradakiler Dizisi Fan Sitesi | Nicholas | Forum siteleri | 0 | 16-02-2008 05:00 |
| Brezilya Dizisi; Varejao | Dream | Spor | 0 | 05-12-2007 01:40 |
| Network Yapilandirmasi Faydalı Komutlar Dizisi | kadınca | Network-internet | 0 | 07-11-2007 06:50 |