ciao ragazzi,

mi sono da poco riavvicinato al mondo del c++ dopo anni che non facevo nulla (prima non è che facessi granchè, solo un corso universitario). Ho creato questo codice che vi posto di seguito, compila senza problemi, il problema è che avviato l'exe crasha. Per l'esattezza va in crash dove ho sottolineato il codice (cioè il secondo puntatore di quella lista di definizioni) e succede a prescindere dall'ordine con cui li dichiaro ( cioè sempre al secondo)
mi date una mano ?? grazie !!

codice:
#include <iostream>
#include <fstream>
#include <cmath>
#include <vector>

using namespace std;

class pianeta
    {
        public:
        double massa;
        double velx, vely;
        double xi, yi;        
        double inserisci_massa( );
        double inserisci_vel( );
        double inserisci_cin( );

    };



    double pianeta::inserisci_massa( )
    {
        cout << "inserire la massa del pianeta" << endl;
        cin >> massa;
        cout << endl;
    }
    
    double pianeta::inserisci_vel( )
    {
        cout << "il modulo della velocita' " << endl;
        double modvel;
        cin >> modvel;
        cout << "inserire l'angolo che la velocita' forma con l'asse X " << endl;
        double angvel;
        cin >> angvel;
        velx = cos(angvel*3.14/180)*modvel;
        vely = sin(angvel*3.14/180)*modvel;
    }
    
    double pianeta::inserisci_cin( )
    {
        cout << "inserire la X iniziale" << endl;
        cin >> xi;
        cout << "inserire la Y iniziale" << endl;
        cin >> yi;
    }

int main()
{
    
const double massa_sole=500000;
const double costante_grav=6.67*pow(10,-11);
const double intervallo=0.01;

ofstream output;
output.open("evoluzione_pianeti.txt");



pianeta ttt;
ttt.inserisci_massa( );
ttt.inserisci_vel();
ttt.inserisci_cin( );

cout << "la massa del pianeta e' " << ttt.massa << endl;
double vel = sqrt(pow(ttt.velx,2)+pow(ttt.vely,2));
cout << "la velocita' iniziale e' " << vel << endl;
cout << "la posizione iniziale del pianeta e' (" << ttt.xi << "," << ttt.yi << ")" << endl;
cout << "quante iterazioni vuoi che faccia (int) ? " << endl;
cout << "vx" << ttt.velx << "vy" << ttt.vely << endl;

double *pvelx=NULL;
*pvelx=ttt.velx;



double iterazioni;
cin >> iterazioni;

double *pvely=NULL;
*pvely=ttt.vely;





double angi=acos((ttt.xi)/(sqrt(pow(ttt.xi,2)+ pow(ttt.yi,2))));
double *pang=NULL;
*pang = angi;



double *pxi=NULL;
double *pyi=NULL;
*pxi=ttt.xi;
*pyi=ttt.yi;



double xt, yt, angt, x, velox, y, veloy, ang, vyt, vxt;

for(int i=1; i<iterazioni; i++)
{
    
x=*pxi;
velox=*pvelx;
ang=*pang;

y=*pyi;
veloy=*pvely;



xt=x+velox*0.01+((massa_sole)/(2*(pow(x,2)+pow(y,2))))*cos(ang*3.14/180)*0.0001;
yt=y+veloy*0.01+((massa_sole)/(2*(pow(x,2)+pow(y,2))))*sin(ang*3.14/180)*0.0001;

vxt=velox+((massa_sole)/(pow(x,2)+pow(y,2)))*cos(ang*3.14/180)*0.01;
vyt=veloy+((massa_sole)/(pow(x,2)+pow(y,2)))*sin(ang*3.14/180)*0.01;

angt=acos(xt/(sqrt(pow(xt,2)+pow(yt,2))));

output << xt << "   " << yt << endl;

*pxi=xt;
*pyi=yt;
*pvelx=vxt;
*pvely=vyt;
*pang=angt;

}


output.close();
return 0;

}