M
Eieiei, ok, verstehe. Danke.
Da war ich zu strikt programmiert auf "wenn ich einer Funktion Adressen übergebe, dann muss sie auch Pointervariablen annehmen".
Gut, dann verstehe ich jetzt, wie sort funktioniert - allerdings leider immer noch nicht, warum nach dem Sortiervorgang mein Struct komplett leer ist.
Mein Struct sieht folgendermaßen aus:
struct tagundinhalt{
int inhaltzaehler;
std::string tag;
std::string inhalt[MAX_INHALT_ANZAHL];
};
Sowohl die int inhaltzaehler als auch tag und inhalt sind auf 0 gesetzt bzw. komplett leer.
(Besonders, dass alle inhaltzaehler ausgerechnet auf 0 gesetzt sind, macht mich stutzig, denn das klingt nicht gerade nach einem seltsamen Willkür-Fehler)
Auch wenn ich beispielsweise nach inhaltzaehler sortieren lasse, bekomme ich dasselbe leere Array.
An welcher Stelle könnte hier der Fehler liegen?
Wenn ich statt
return a.tag < b.tag
einfach immer true zurückgeben lasse, bekomme ich ein Segmentation fault.
Wenn ich immer false zurückgeben lasse, bekomme ich dasselbe Ergebnis wie bei dem echten Vergleich von a.tag und b.tag (Nur für den Fall, dass das von irgendeiner Bedeutung ist bzw. weiterhilft)
Und: ist es normal, dass sich nach der Sortierung mein Array an derselben Stelle im Speicher befindet? (Ich nehme schon an, schließlich kann sort nicht eigenhändig dauerhaft Speicher reservieren, oder kann es das? Ich wollte das jedenfalls erwähnt haben )