deepthroat
Erfahrenes Mitglied
Falls Objekte im Vektor gespeichert sind (wie z.B. std::string), dann werden diese natürlich zerstört (d.h. deren Destruktor wird aufgerufen) und infolgedessen der Speicher den diese Objekte besaßen freigegeben. Was allerdings nicht freigegeben wird ist der Speicher den der Vektor besitzt um die Objekte zu speichern, das passiert erst wenn der Vektor selbst zerstört wird.Ich hätte es genauer schreiben sollen. Wenn ich einen Vector clear() e, dann wird der Speichern, den der Inhalt belegt hat automatisch freigeben, oder?
C++:
std::vector<std::string> v(10); // Vektor mit 10 leeren Strings
v.clear();
v.size(); // == 0
v.empty(); // == true
v.capacity(); // >= 10
Also wenn du schonmal C++ nutzen kannst / darfst, würde ich es auch verwenden.Eine generelle Frage hätte ich noch. Ist es nicht Sinnvoll, wenn ich den Code jetzt Stückweise auf C++ umstelle (also den Vector verwenden), als das ganze weiter in C zu pflegen?
Gruß