13.2 Dinamik Matrisler
13.2 Dinamik Matrisler
İki veya daha fazla boyuta sahip dinamik dizi oluşturmak mümkündür. Bu durumda, göstericiyi gösteren göstericler kullanılır. Program 13.3, bir matrisin elemanları bulup ekrana yazar.
Program 13.3: Dinamik matris tanımlama
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
/* 13prg02.c: Dinamik matris tanımlama */ #include <stdio.h> #include <stdlib.h> int main() { int **matris; int satir, kolon; int s, k; int i; printf("Matrisin satır sayısı: "); scanf("%d", &satir); printf("Matrisin kolon sayısı: "); scanf("%d", &kolon); /* dıştaki dizi için bellek alanı isteniyor */ matris = (int **) calloc(satir, sizeof(int)); /* içteki dizi için bellek alanı isteniyor */ for(i = 0; i < satir; i++) matris[i] = (int *) calloc(kolon, sizeof(int)); /* matrisin elemanları okunuyor */ for(s = 0; s < satir; s++) for(k = 0; k < kolon; k++) { printf("Matrisin elemanı girin: matris[%d][%d] = ", s, k); scanf("%d", &(matris[s][k])); } printf("\nGirilen matris:\n"); for(s = 0; s < satir; s++) { for(k = 0; k < kolon; k++) printf("%4d", matris[s][k]); printf("\n"); } /* içteki dizi boşaltılıyor */ for(i = 0; i < satir; i++) free((void *) matris[i]); /* dıştaki dizi boşaltılıyor */ free((void *) matris); return(0); } |
ÇIKTI
1 2 3 4 5 6 7 8 9 10 11 12 |
Matrisin satır sayısı: 2 Matrisin kolon sayısı: 3 Matrisin elemanı girin: matris[0][0] = 1 Matrisin elemanı girin: matris[0][1] = 2 Matrisin elemanı girin: matris[0][2] = 3 Matrisin elemanı girin: matris[1][0] = 5 Matrisin elemanı girin: matris[1][1] = 6 Matrisin elemanı girin: matris[1][2] = 8 Girilen matris: 1 2 3 5 6 8 |