Speicherproblem?
-
Hallo Leute,
ich habe ein kleines, aber nervendes Problem. Ich möchte einfach nur zwei Char-Arrays (also Strings) konkatenieren. Mein Programm stürzt aber immer ab und ich raff es einfach nicht.char* mainCmd; mainCmd = (char*) malloc (1024); mainCmd = "Erster Part"; char* msiName = "Der andere String"; char* tempDir = "Zweiter Paramater"; strcat(tempDir, "\\"); strcat(tempDir, msiName); /* SO FUNKTIONIERT ES strcat(tempDir,mainCmd); */ /*So nicht*/ strcat(mainCmd,tempDir);
Ich weiß so richtig nicht, warum das nicht funzt. Ich habe auch schon mit malloc und new gearbeitet, aber es bleibt immer beim Abbruch (was ja auf einen Speicherfehler hinweist).
Danke euch
-
char *str = (char*)malloc(sizeof(char)*10); strcpy(str,"Hallo"); char *str1 = (char*)malloc(sizeof(char)*20); strcpy(str1,"Ich bin ein String"); //Fehler str zu kurz für str1 //strcpy(str, str1); //Geht, aber auskommentiert wegen unten: //strcpy(str1, str); //Edit: char *str2 = (char*)malloc(sizeof(char)*30); strcat(str2, str); strcat(str2, "! "); strcat(str2, str1); printf("%s\n", str2); free(str); free(str1); free(str2);
Das hier funktioniert nicht, nimm strcpy oder strcat:
mainCmd = "Erster Part";
Und mit diesen Konstruktionen bewegst du dich auch auf Messer's Schneide, v.a. kannst du denen nicht zuweisen, ohne dein Programm in ernsthafte Schwierigkeiten zu bringen.
char* msiName = "Der andere String"; char* tempDir = "Zweiter Paramater";