Şimdi Ara

c de array i iade etmek

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
4
Cevap
0
Favori
721
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • merhaba,

    benim bir fonksiyonum bir array oluşturup bu arrayin başlangıç adresini döndürüyor.
    ben de main de bir pointer da bu adresi tutuyorum fakat, daha sonra bu array le işim bittiğinde ilk baştaki fonksiyonumdan yeni bir arrayi gene aynı pointer da tutucam. Buradaki sorun şu eğer eski array in işgal ettiği bellek alanını sisteme iade etmezsem çok büyük boyutlu olduğu için heap alanı yetersiz kalıyori program tıkanıyor. yani başka bir deyişle:

    main(){

    ptr = createArray(); // ilk array in başlangıç adresi ptr ye atanıyor

    free(ptr); // burada ilk arrayin tuttuğu bellek alanını iade etmek istiyorum

    ptr = setArray(); // ptr ye yeni bir array in başlangıç adresi atanıyor

    }

    benim sorum şu bu array in işgal ettiği alanın tamamını sisteme iade etmek için sadece free(ptr) yeterli mi yoksa bir dngü ile array elemanlarının adreslerini tek tek dolaşıp free mi etmeliyim?

    yardımcı olan arkadaşlara şimdiden teşekkürler







  • Array'in elemanları basit tiplerse (int, short vs gibi) ya da basit tiplerden oluşan birer struct ise free demen yeterli.

    Array icin yeri malloc'la filan aldığını varsayıyorum..
  • öyle değil gibime geliyor, farklı fikirleri olan arkadaşları bekliyorum...
  • quote:

    Orjinalden alıntı: btahir346

    öyle değil gibime geliyor, farklı fikirleri olan arkadaşları bekliyorum...


    dostum fikir yürütülecek bir konu değil bu :)
    güvenle free edebilirsin malloc ile aldığın bir array'i.
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.