I die folgende Struktur als Schablone definiert haben für mich x und y zu speichern Koordinaten für Punkt:zur Ausgabe Versuch, die Koordinaten des Punktes structs C++
:typedef struct point {
int x_coordinate, y_coordinate;
};
I auch die folgende Funktion definiert haben,
point* get_neighbours(point p) {
point neighbours[4] = {};
point left_neighbour, right_neighbour, upper_neighbour, lower_neighbour;
left_neighbour.x_coordinate = p.x_coordinate - 1;
left_neighbour.y_coordinate = p.y_coordinate;
neighbours[0] = left_neighbour;
right_neighbour.x_coordinate = p.x_coordinate + 1;
right_neighbour.y_coordinate = p.y_coordinate;
neighbours[1] = right_neighbour;
upper_neighbour.x_coordinate = p.x_coordinate ;
upper_neighbour.y_coordinate = p.y_coordinate+1;
neighbours[2] = upper_neighbour;
lower_neighbour.x_coordinate = p.x_coordinate;
lower_neighbour.y_coordinate = p.y_coordinate - 1;
neighbours[3] = lower_neighbour;
return neighbours;
}
Allerdings, wenn ich den folgenden Code ausführen:
erhalte ich die followin g-Ausgabe:
2 3
-858993460 0
-858993460 0
14677568 14678244
Irgendwelche Ideen warum.
Sie müssen lesen und ** lernen viel mehr über C++ ** und seine [Speicherverwaltung] (https://en.wikipedia.org/wiki/Memory_management) & [RAII] (https: // en. wikipedia.org/wiki/Resource_acquisition_is_initialization). Verbringe eine Woche mit dem Lesen, zuerst über [Programmierung in C++] (http://stroustrup.com/Programming/) –
BTW, solltest du in Betracht ziehen, [containers] (http://en.cppreference.com/w/cpp/container) und deklariere 'std :: vector get_neighbors (point p);' mindestens. Wahrscheinlich sollte 'point' eine' Klasse' mit einem 'std :: vector get_neighbors();' Mitgliedsfunktion (d. H. Methode) sein. –
Vielen Dank. Schon in Kapitel 4 !!! –