5 Mayıs 2013 Pazar

C programlama dilinde bir matrisi malloc kullanarak fonksiyona gönderme

Başlıktada belirttiğim gibi matris için malloc ile bellekte nasıl yer ayıracağımızı ve matrisi fonksiyona nasıl göndereceğimizi anlatacağım. Bunu basit bir örnekle anlatmanın daha anlaşılır olacağını düşündüm. Örnekte boyutları ve değerleri kullanıcı tarafından girilen bir matrisi bir fonksiyona göndereceğiz. Fonksiyonda bu matrisi ekrana çıktı olarak alacağız.




Resimdeki numaralar ile aşağıdan takip edebilirsiniz.

  1. Fonksiyonun prototipi.
  2. Matrisi çift pointer kullanarak bildirmeliyiz
  3. Kullanıcıdan satır ve sütun değerlerini alıyoruz
  4. Matrisin satırı için boyut1*(1 int değerinin tuttuğu yer) kadar bellekte yer ayırıyoruz.Altındaki for döngüsünde ise matrisin sütunu için bellekte yer ayırıyoruz. Her satır daki tüm sütunlar için bellekte ayrı ayrı yer ayırıyoruz. Bu nedenle böyle bir for ifadesi kullandık. Dikkat edersek for döngüsü boyut1 kadar dönüyor.
  5. Kullanıcıdan matris değerlerini alıyoruz.
  6. Matrisi yazdıracak olan fonksiyonu çağırıyoruz
  7. Malloc kullandıktan sonra bellekte ayırdığımız yerin tekrar boş bırakılması için  bu ifadeleri kullanmalıyız. Öncelikle her satırdaki sütun elemanlarının bellekte tuttuğu yer boş bırakılsın diye yine for kullandık. for döndüsü yine boyut1 kadar dönüyor.
  8. Bu seferde satır elemanlarının tuttuğu yeri boş bıraktık.
  9. Burada matris elemanlarını yazdırıyoruz.
Umarım faydalı olur.

Hiç yorum yok:

Yorum Gönder