Ciao a tutti mi sto esercitando sulla sintassi delle struct e puntatori.
Sebbene il compilatore non mi dia nessun errore (però il programma si pianta) penso che commetto degli errori di sintassi:
Ad esempio:
return new triangolo {x[2],y[2],z[2]};
La funzione scritta così mi restituirà solo un valore per ogni array
triangolo *puntoA = new triangolo {(1,2,3),(4,5,6),(6,7,8)};
Anche qui non sono convinto: sarebbero 3 array se uso le paretesi quadre il compilatore mi dà errore
Sotto il codice completo
#include <iostream>
using namespace std;
struct triangolo
{
long double x[2];
long double y[2];
long double z[2];
};
triangolo *punto_medio(triangolo *a, triangolo *b)
{
long double *x = new long double[2];
long double *y = new long double[2];
long double *z = new long double[2];
for (int i=0; i<3; i++)
{
x[i] = (a->x[i] + b->x[i]) /2;
y[i] = (a->y[i] + b->y[i]) /2;
z[i] = (a->z[i] + b->z[i]) /2;
}
return new triangolo {x[2],y[2],z[2]};
}
int main()
{
triangolo *puntoA = new triangolo {(1,2,3),(4,5,6),(6,7,8)};
triangolo *puntoB = new triangolo {(10,20,30), (40,50,60),(60,70,80)};
triangolo *medio = punto_medio(puntoA, puntoB);
cout << "x" << medio->x[0];
return 0;
}