Dein Code zeigt, wie man dieses Problem in C lösen würde (wenn man mal von cin/cout absieht). In C++ kann man das zwar genauso machen, man tut es aber normalerweise nicht. C++ biete viele Möglichkeiten, wie man sich hier das Leben vereinfachen kann. Man muss dazu auch nicht sofort alles auf Objektorientierung umstellen.
So könnte das aussehen:
// Struktur für einen 2D-Punkt
struct punkt
{
double x;
double y;
};
vector<punkt> fc_calc_sp_g1_poly (punkt ep, punkt zp, int f,
vector<punkt> const& poly)
{
vector<punkt> rueckgabe;
//Alle Punkte der Polylinie durchlaufen
for (size_t z=0; z<poly.size()-1; ++z)
{
punkt r;
//funktion sucht schnittpunkt
if( fc_calc_sp_g1_g2 (ep, zp, poly[z], poly[z+1], f, 0, r) )
{
rueckgabe.push_back(r);
cout << "\nSchnittpunkt gefunden !";
cout << "\nspz: " << matrix.size();
cout << "\n" << z << '\t' << r.x << '\t' << r.y;
}
}
return rueckgabe;
}[/code]
Der Code ist damit übersichtlicher und gleichzeitig ausnahmesicher. Er enthält kein lästiges Speichermanagement mehr, darum kümmert sich die Vector-Klasse. fc_calc_sp_g1_g2 müsste natürlich ähnlich angepasst werden.