array soll 2d punkte aufnehmen
-
Kylanysik schrieb:
wow, wirklich nen fieses ding.
darauf wäre ich nie gekommen. wie lange stehst du denn schon in c++, dass dir ein solcher fehler auffällt? ^^vielen dank.

Hmm. Gute Frage..
- Vlt. so 2 - 2.5 Jahre mittlerweilen.Mir selbst ist so ein Fehler glaube ich noch nie passiert, was aber daran liegt, dass ich eine solche "ungeordnetheit" sowieso nicht ausstehen kann und das eigl. seit dem Anfang immer in der richtigen Reihenfolge gemacht habe. Habe aber ein paar mal über den Fehler gelesen und bei dir war es ja offensichtlich, da eins zum anderen führt.

Einen namespace musst du schon auch noch angeben:
std::swap(m_data, rhs.m_data); // <- std::swap(m_size, rhs.m_size); // <-
-
nun existiert lediglich eine lücke

point p1(2,3); point_list liste(5); liste[0] = p1; // <-wie schon geschildert funzt der aufruf nicht... wenn ich das richtig verstehe will ich speicher benutzen, der nich dafür gedacht war. oder?
-
Was geht denn nicht? Compilefehler, oder erst zur Laufzeit?
-
nunja, wenn ich es so richtig sehe, dann erst zur laufzeit.. denn die zuvor in der main aufgerufenen aufgaben werden erfüllt und erst, wenn er zu der zeile: "liste[0] = p1" kommt, zeigt er den fehler an.
-
Was für ein Laufzeitfehler entsteht denn? Heap Corruption? Exception?

-
make: *** [main_test] "segmentation fault"
make: *** Datei >>main_test<< wird gelöscht
-
Die swap-Funktion bei Point scheint mir fehlerhaft.
void point::swap(point& rhs) { std::swap_ranges(data_, data_+4, rhs.data_); }Data hat doch bloß 2 Elemente. Hier würden auch 2 normale std::swap Aufrufe reichen.
-
OK. Dann schau mal mit dem Debugger, von wo das genau kommt. Wahrscheinlich liegt es am Kopieren und nicht am Zugriff in die Liste..
-
stimmt.. habs geändert..
also ich habe die swap der point-klasse geändert und nun funktioniert auch die zeile liste[0] = p1;
zumindest erstmal ohne fehlermeldung, werde mich aber melden, falls es im laufe der zeit nach hinten losgehen sollte
voerst funzt alles vielen dank

grüße kylanysik und sorry nochmal wegen der unanehmlichkeiten, die ich bereitet habe

-
Das war wieder einmal ein schönes Beispiel für "undefiniertes Verhalten".
