Bir matrisin elemanlarını dışardan okuyup, dinamik hafıza yaratarak ekrana yazar. Dinamik hafıza kullanarak, dinamik çok boyutlu dizi oluşturacağız. Dinamik diziler için gereken bellek bölgesi, derleyici tarafından işletim sisteminden istenir, kullanılır ve daha sonra istenirse bu bölge boşaltırılır.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
#include<stdio.h>
#include<conio.h>
#include<stdlib.h> // Dinamik hafıza için
main()
{
int **matris;
int satir,sutun;
int i,j;
printf("Satir sayisini giriniz: ");
scanf("%d", &satir);
printf("Sutun sayisini giriniz: ");
scanf("%d", &sutun);
matris= (int **) malloc(satir * sizeof(int)); // satır sayısına göre hafızada yer ayırıyoruz
for(i=0; i<satir ; i++)
{
matris[i]= (int *) malloc (sutun * sizeof(int)); // Her satırda, sütun sayısı kadar hücrenin
// hafızada ayrılmasını saglıyoruz
}
// matrisin elemanlarını dışarıdan okuyoruz
printf("\nMatris elemanlarini giriniz:\n");
for(i=0; i<satir ; i++)
{
for(j=0; j<sutun ; j++)
{
printf("matris[%d][%d]= ", i, j);
scanf("%d", &matris[i][j]);
}
}
printf("\n ==Girilen matris== \n");
for(i=0; i<satir ; i++) // matris elemanları teker teker yazdırılıyor
{
for(j=0; j<sutun ; j++)
{
printf("%d ", matris[i][j]);
}
printf("\n");
}
free(matris); // satır sayısına göre hafızada ayrılan yer boşaltılıyor
for(i=0; i<satir; i++)
{
free(matris[i]); // Her satırda, sütun sayısı kadar
// ayırdığımız hafızayı boşaltıyoruz
}
getch();
}
Eklentide çalıştır dosyası var onu çalıstırıp programın işlevini daha rahat görebilirsiniz.