2010-03-20 11 views

cevap

10

Herhangi bir işaretçiyi kullanmak için geçerli belleğe işaret etmesi gerekir. Şu anda, başlatılmamış ve çöp kutusuna işaret eden bir işaretçiniz var. Eğer cin var bir double değil double** iletmeniz gereken Ayrıca aşağıdaki

double* price = new double(); 

deneyin.

cin >> *price; 

Not bu daha sonraki bir zamanda serbest bırakılmalı sizin sürecinde yeni bellek ayrılamadı. Yani getPrice arayan tarafından. gereksiz bellek yönetimi yükü tanıtır çünkü örneğin

double* p = getPrice(); 
... 
delete p; 

için ideal bu senaryoda size hiç bir işaretçi tahsis edilmemelidir. Çok daha kolay bir uygulama, aşağıdaki

+0

mükemmel olacaktır ... şimdi anlıyorum. Teşekkürler – user69514

İlgili konular