2016-04-02 7 views

cevap

0

, bir OutOfMemoryError içine çalışacaktır. Ve bu, eski verileri temizlemezseniz C++'da da gerçekleşecektir (hata muhtemelen OutOfMemoryError olarak adlandırılamaz, ancak sonuçları tahmin ettiğimyle aynıdır).

+1

C, 'malloc()' başarısız olur ve NULL döndürür. C++ 'da '(nothrow)' belirtilmediyse 'new'' bad_alloc' atar, bu durumda NULL döndürülür. –

+0

Tamam, C/C++ ile çok fazla deneyimim yok (zaten birkaç yıl geçti). Program çökecek mi, yoksa bir şekilde bu hataları ve çözümü çözebilecek misiniz? – dunni

+0

@dunni Eğer bilmek istediğiniz şey buysa, – Raedwald

0

Bu C/C++ ile olur. Farklı bir şekilde. C/C++ 'da, sorumluluk, tahsis edilen hafızayı tutmak ve serbest bırakmak için programcı ile daha fazla yatmaktadır. Programcılar, işaretçi biçiminde belleğe doğrudan erişime sahiptir. Java'da programcıdan gizlenir. Hafızanın kaydını tutmanıza gerek yok, JVM sizin için çöp toplama şeklinde yapıyor. Bu, nesnelere neyse nily olarak bellek ayırabileceğiniz anlamına gelmez. Global nesneler uzun süre korunur ve eğer GC onlara zamanında ulaşamazsa, bellek sınırın ötesine geçer ve OutOfMemoryException gerçekleşir.