Hallo
Ich habe folgendes Problem. Wenn ich aus einem String wieder ein Char-string machen möchte, bricht mir beim zugriff auf das Char-string die Anwendung ab. Ich brauche ein Char-array da die anderen Funktionen kein const char vertragen.
der Quellcode sieht wie folgt aus:
int main(int argc, char* argv[]){
std::string Application;
char * cAnw = new char(strlen(argv[0])+1);
Application = argv[0];
strcpy(cAnw,argv[0]);
CMLFBGEN * MLFB = new CMLFBGEN(Application, cAnw);
}
CMLFBGEN::CMLFBGEN(std::string sAppl, char * cApp){
sAppPath = sAppl.substr(0,sAppl.rfind("\"));
sFileErgCSV = sAppPath + „\gepa\MLFBLog.cvs“;
}
bool CMLFBGEN::SetErgCSVFile(void){
try{
char * ctemp = new char(strlen(sFileErgCSV.c_str() +1));
std::strcpy(ctemp, sFileErgCSV.c_str());
std::cout
Hallo
Ich habe folgendes Problem. Wenn ich aus einem String wieder
ein Char-string machen möchte, bricht mir beim zugriff auf das
Char-string die Anwendung ab. Ich brauche ein Char-array da
die anderen Funktionen kein const char vertragen.
…
char * ctemp = new char(strlen(sFileErgCSV.c_str() +1));
std::strcpy(ctemp, sFileErgCSV.c_str());
char\* ctemp = new char( strlen(sFileErgCSV.c\_str()+1 ) );
Wow, gleich 2 kritische Fehler in einem Ausdruck 
Grüße
CMБ
Hallo
Was ist jetzt daran kritisch und wie soll ich es verbessern. Da ich noch Anfänger bin würde ich mich über Hilfe freuen.
Grüße Sven
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hallo
Was ist jetzt daran kritisch und wie soll ich es verbessern.
aus
char \* cAnw = new char( strlen(argv[0]) + 1 );
wird
char \* cAnw = new char[strlen(argv[0]) + 1 ];
und aus
char \* ctemp = new char( strlen( sFileErgCSV.c\_str()+1 ) );
wird
char \* ctemp = new char[sFileErgCSV.length() + 1];
Da ich noch Anfänger bin würde ich mich über Hilfe freuen.
http://www.cppreference.com/cppstring/index.html
Grüße
CMБ
1 „Gefällt mir“
Hallo
das char * ctemp = new char[sFileErgCSV.length() + 1]
war genau der knackpunkt. Da habe ich wohl falsch gedacht.
Danke schön
Grüße Sven
Was ist jetzt daran kritisch und wie soll ich es verbessern.
aus
char * cAnw = new char( strlen(argv[0]) + 1
);
wird
char * cAnw = new char[strlen(argv[0]) + 1
];
und aus
char * ctemp = new char( strlen(
sFileErgCSV.c_str()+1 ) );
wird
char * ctemp = new
char[sFileErgCSV.length() + 1];
Da ich noch Anfänger bin würde ich mich über Hilfe freuen.
http://www.cppreference.com/cppstring/index.html
Grüße
CMБ