Segfault beim [] Operator von Maps
-
Nabend zusammen,
ich habe folgendes Problem:
void pfoConfig::SetVar (const char* Name, std::string Value) { #ifdef DEBUG std::cout << "(Debug) Setting config var \"" << Name << "\" to \"" << Value << "\"" << std::endl; #endif ConfigMap[std::string(Name)] = Value; std::cout << "SIEGFRIED URPILS!" << std::endl; }Dies ist die Methode meiner Config-Klasse zum ändern / setzen von Config-Variablen.
Das Problem ist, dass die Zeile:
ConfigMap[std::string(Name)] = Value;einen Segfault auslöst.
Die Map ist wie folgt deklariert:
std::map<std::string, std::string> ConfigMap;Die Debugausgabe ergibt folgendes:
(Debug) Setting config var "save_path" to "/home/dr-saar/screenshots"
Program received signal SIGSEGV, Segmentation fault.
Vielen Dank für eure Mühen im Voraus,
Dr-Saar
-- Edit --
Der Funktionsaufruf:
if (dirdlgSavePath->ShowModal() == wxID_OK) { textctrlSavePath->SetValue (dirdlgSavePath->GetPath()); std::stringstream ss; ss << (dirdlgSavePath->GetPath ()).char_str(); Config->SetVar ("save_path", ss.str ()); Config->Write (); }
-
Sicher dass 'Name' ungleich NULL ist?
-
Badestrand schrieb:
Sicher dass 'Name' ungleich NULL ist?
Da die Debugausgabe einen Wert enthält, gehe ich mal davon aus.
Gruß
Dr-Saar
-
Oh stimmt, bin doof

Was passiert, wenn du die Texte hardcodest, also:
ConfigMap["save_path"] = "/home/dr-saar/screenshots";?