Kayıtlar

rand etiketine sahip yayınlar gösteriliyor

27 : Dinamik Bellek Kullanımı

Daha önce diziler konusunda diziler kullanılırken bir sınır belirtmek gerektiğini söylemiştik. Örneğin kullanıcıdan sayı girmesi istenilecekse olabilecek bir maximum değer öngörülüp dizi tanımlanırken bu değer kullanılır. #define MAX 1024 int dizi[MAX]; Buna alternatif olarak belleği dinamik olarak da ayırıp kullanabiliriz. Program çalışırken bellekten belli bir bölüm ilgili iş için kullanılıp daha sonra boşaltılabilir. Burada dikkat edilmesi gereken kullanacağımız belleğin gerçekten ayrılmış olmasını kontrol etmek ve kullandıktan sonra gerekiyorsa ilgili alanı boşaltmak. Kontrol etmediğimiz takdirde belleğin ayrılamaması durumunda programın sonlanması; boşaltmamamız durumunda ise "memory leak" denilen belleğin tükenmesi sorunuyla karşılaşırız. Nasıl kullanıldığını görmek için bir örnekle kullanıcıdan bir miktar girmesini isteyip bu miktarda rastgele sayı oluşturup yazdıralım. dinamik.c #include <stdio.h> #include <stdlib.h> #include <time.h> int...

26 : Fonksiyonda Birden Fazla Değişkeni Güncellemek

Resim
Bir fonksiyonun birden fazla değişken dönüşü olamayacağını söylemiştik. Birden fazla değişken bir dizi halinde ise nasıl kullanacağımızı da gördük. Peki bu değişkenler birbirinden ayrı tiplerde değişkenler ise nasıl güncelleyebiliriz? Şimdi bir örnek uyduracağım. Diyeceğim ki bir fonksiyonum olsun. Rastgele boyutlu bir matris üretsin. Matrisin boyutları en çok 5x5 en az 1x1 olsun. Değerler 0 ile 1 arasında olsun ve rastgele seçilsin yine. Fonksiyonda bu değerler yazdırılsın ve sonra main fonksiyonda biz de tekrar yazdırıp doğru mu alıyoruz matrisi kontrol edebilelim. Önce matrisi oluşturacak bir fonksiyon yazmam gerekiyor. Rastgele sayılarla nasıl çalışılır görmüş de olacağız bu sayede. Ancak boyutun da rastgele olması bizim için problem. Çünkü main fonksiyonunda yazdırmak istediğimizde sınırları nasıl belirleyeceğimizi bilmemiz gerekir. Bunun için de bu boyut değerlerini fonksiyondan öğrenmemiz gerekir. rastgele_matris.c #include <stdio.h> #include <time.h> #include...