string in char c++
-
Hallo zuammen!
Ich wende mich an euch, weil ich dem Problem einfach nicht Herr werde.
Ich frage mit Benutzereingabe nach dem Dateipfad (string) und möchte diesen in ein char umwandeln. Hierbei tritt eine Speicherverletzung auf. Ich weiß nicht, was das bedeutet und wie ich das beheben kann. Kann man direkt nach dem Eingabepfad fragen Ohne Umwandlung? Ich weiß nicht mehr weiter. Kann mir vielleicht jemand weiter helfen?
Hier der Code:
... string quelle; // Dateipfad cin>> quelle; // Benutzereingabe Dateipfad char * pfad = new char[512]; // Umwandlung von strcpy(pfad,quelle.c_str()); // "string quelle" zu "char pfad" if (inpta==1) { kartPkt = einlesenkart(pfad, anzahlKart); ...Viele Grüße,
Funnyyy
-
Also ich kann in deinem Code nicht erkennen, wo genau da eine Speicherzugriffsverletzung auftreten soll (außer dein Eingabepfad in
quelleist über 511 Zeichen lang, wovon ich aber nicht ausgehe).Auf der anderen Seite brauchst du aber auch kein char Array. Wenn du
pfadnicht noch sonderlich veränderst, nutze doch einfachkartPkt = einlesenkart(quelle.c_str(), anzahlKart);.PS.: Falsches Forum.
-
Danke für die Antwort!
Nun tritt die Fehlermeldung auf:
"1>..\main.cpp(55): error C2664: 'einlesenkart': Konvertierung des Parameters 1 von 'const char *' in 'char *' nicht möglich"In welches Forum gehört die Frage?
-
Dieser Thread wurde von Moderator/in Jochen Kalmbach aus dem Forum C++/CLI mit .NET in das Forum C++ (auch C++0x) verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Wenn es deine eigene Funktion ist, dann ändere einfach den ersten Parameter auf "const char*", denn du willst ja sicherlich nicht den String in der Funktion ändern, sondern nur auf diesen Pfad lesend zugreifen.