Salve a tutti!

Ho un problema con il codice seguente che mi dovrebbe restituire, dati 4 vertici(x,y) , semplicemente 2 punti (minx, miny) ; (maxx, maxy)

[I]Polygon::Polygon(int a)
{
num = a;
Points = new Point[num]; //la classe Point definisce x e y di un
punto
}



Point *Polygon::getOutbox()
{
Point *r[2];
r[0] = new Point(Points[0].x,Points[0].y);
r[1] = new Point(Points[0].x,Points[0].y);

for (int i=0;i<num;i++)
{
Point *p = new Point(Points[i].x,Points.y);

if (p->x < r[0]->x) r[0]->x = p->x;
if (p->x > r[1]->x) r[1]->x = p->x;
if (p->y < r[0]->y) r[0]->y = p->y;
if (p->y > r[1]->y) r[1]->y = p->y;

cout << r[0]->x << r[0]->y << endl;
cout << r[1]->x << r[1]->y << endl;

delete p;
}
return r[0];
}



Dal main faccio eseguire il calcolo:

[I]main()
{
Polygon *plyP = new Polygon(4);
plyP->Points[0] = (Point)* new Point(1,1);
plyP->Points[1] = (Point)* new Point(2,5);
plyP->Points[2] = (Point)* new Point(7,3);
plyP->Points[3] = (Point)* new Point(5,1);

Point *pob;
pob = plyP->getOutbox();
for (int i=0;i<2;i++) cout << pob[i].x << " " << pob.y << endl;
}


ed il risultato è:

11
11
25
11
75
11
75


1 1 // QUESTO RUSULTATO E' CORRETTO
3.50325e-44 7 // QUESTO NO - DOVREBBE ESSERE l'ULTIMA COPPIA CIOE'
(7 5)

Penso che se mi da correttamente i valori calcolati nel for cioè

11
11
25
11
75
11
75

l'errore sia nella restituzione return *r ma non riesco a capire dove!!


Ringrazio chiunque voglia darmi una mano!!