belki ilginizi çeker
  1. · malloc
  2. · güçlü görünmeye çalışan kadın
gündem
  1. · yeşim salkım
  2. · the twilight saga new moon
  3. · öğretmenler günü
  4. · cebe sevgili ismini kayıt şekilleri
  5. · tadı harika olan yiyecek kombinasyonları
  6. · kurban kesmeye karşı olan dallama
  7. · bittikten sonra insanı mal gibi bırakan filmler
  8. · buffy the vampire slayer
  9. · fırsat

memory leak  

  1. hafıza sızıntısı. işletim sisteminden talep edilmiş ve kullanılmış bir bellek alanının işaretçisinin ya da referansının, o bellek alanı geri verilmeden* başka bir yere işaret etmesi sonucu oluşur. bu durumda o bellek alanı hala süreç tarafından sahiplenilmesine rağmen, o bölgeyi gösteren herhangi bir işaretçi ortada yoktur. eğer programcı türlü aşmışlıklar yapmamışsa büyük ihtimalle kontrolsüz bir durum oluşturacaktır.

    örneğin, çok güzel bir memory leak aşağıdadır:

    int *intptr;
    for(int i = 0; i < 100; i++)
    {
    intptr = new int[10];
    }

    intptr işaretçisi sürekli bellek alanı alıp, yeni bellek alanına işaret ediyor; fakat eski bellek alanı ne oluyor? işletim sisteminin iyi anına denk gelmişse ve tüm veri alanlarını ard arda vermişse durumu kurtarabiliriz, ama değilse, geçmiş olsun.

    programların anormal (ve genellikle biriken) bellek kullanmasındaki kilit nedenlerden biri, fakat bu tür bir hatayı büyük projelerde bulmak çok zordur sanırım. çözüm ise, aldığımız belleği dikkatli bir şekilde geri vermeliyiz.
    (raiser, 06.12.2006 22:25 ~ 22:26)
  2. kod içinde direkt new/delete kullanmak yerine raii veya hazır smart pointer sınıfları(misal boost'un smart pointerları) ile önüne geçilebilecek şey. c++'da sadece alınan hafızayı serbest bırakmayı unutmakla değil, kodun bir yerlerinde exception atarsada oluşur.
    misal

    int *superint;
    superint=new int[4];
    çokmühimbirşeyler();
    delete[] superint;

    içerikli bir kodda eğer çokmühimbirşeyler() exception atarsa ne yazık ki delete satırı çalışamayacak ve nur topu gibi bir memory leakimiz oluşacaktır. (c'den pek anlamıyorum lâkin exception durumunda eğer uygulamayı sonlandıracak türden değilse sonraki satırlar işletiliyordu sanırım)
    (çılgın rüstem, 23.09.2009 00:42 ~ 00:43)

künye  ·  iletişim / şikayet / reklam  ·  sıkça sorulan sorular  ·  itü sözlük görseller  ·  itü sözlük extra  ·  itü sözlük mobil