rekursif bir fonksiyon neden bir süre sonra hata verip kapanıyor?
void main(){
x();
}
void x(){
x();
}
bunun bir çözümü var mı?
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]
Thread overview | ||||||
---|---|---|---|---|---|---|
|
December 06, 2012 Rekursif fonksiyon bir süre sonra hata veriyor | ||||
---|---|---|---|---|
| ||||
rekursif bir fonksiyon neden bir süre sonra hata verip kapanıyor?
bunun bir çözümü var mı? -- |
December 06, 2012 Rekursif fonksiyon bir süre sonra hata veriyor | ||||
---|---|---|---|---|
| ||||
Posted in reply to Talha Zekeriya Durmuş (zekeriyadurmus) | Her dilde öyledir. Her işlev çağrısı program yığıtından (program stack) bir miktar kullandığı için bir noktadan sonra yığıtta yer kalmaz. Özyinelemeli işlevlerin o yüzden hep özyinelemeyi sonlandıran bir denetimleri olur:
Ali -- |
December 07, 2012 Rekursif fonksiyon bir süre sonra hata veriyor | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ali Çehreli (acehreli) | Anladım ama bunu try catch ile yakalayamıyorum.
bir yolu var mı yakalamanın? -- |
December 07, 2012 Rekursif fonksiyon bir süre sonra hata veriyor | ||||
---|---|---|---|---|
| ||||
Posted in reply to Talha Zekeriya Durmuş (zekeriyadurmus) | Programın kapanmadan önce verdiği hatayı söylemiyorsun. ;) Hata (exception) atma düzeneği teknik olarak, Throwable'dan türemiş olan hataları yakalayabilir. Ama programın durumuna güvenebilmek açısından yalnızca Exception veya ondan türemiş olan hatalar yakalanmalıdır. (Error veya ondan türemiş olan hatalar değil.) Senin durumunda hata atılıyor mu bile? (Örneğin, "segmentation fault" bu anlamda bir hata değildir. İşletim sistemi ile ilgili bir olanaktır.) Ali -- |