2010-03-20 7 views

risposta

10

Per utilizzare un puntatore di qualsiasi tipo è necessario puntare alla memoria valida. In questo momento hai un puntatore che non è inizializzato e punta alla spazzatura. Provate il seguente

double* price = new double(); 

Inoltre è necessario avere cin passare ad una non double un double**.

cin >> *price; 

Nota questo alloca nuova memoria nel processo che deve essere liberata in un secondo momento. Ovvero dal chiamante di getPrice. Per esempio

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

Idealmente in questo scenario non si dovrebbe essere assegnato un puntatore a tutti perché introduce inutili spese generali di gestione della memoria. Un'implementazione molto più semplice sarebbe la seguente

double getPrice() { 
    double price; 
    cout << "Enter Price of CD: " << endl; 
    cin >> price; 
    return price; 
} 
+0

grande ... ho capito ora. Grazie – user69514

Problemi correlati