Compiler Error by char zuweisung

08/03/2014 01:39 newchild#1
Wenn ich versuche
Code:
char command[100] = "start " + "\\Musik\\" + '"' + musikstuck + '"';
(Ich weiß, dass die 100er Reservierung unnötig groß ist)

zu kompilieren sagt mein GNU GCC Compiler:

Code:
 invalid operands of types 'const char [7]' and 'const char [8]' to binary 'operator+'
Kann mir jemand sagen wie ich dieses Problem fixen kann?
08/03/2014 02:13 snow#2
du kannst nicht einfach so const char Arrays addieren und einen überladenen Operator dafür bieten sowohl C als auch C++ auch nicht.

Um Strings zu verketten, benötigst du bei C eine Funktion wie z.B. [Only registered and activated users can see links. Click Here To Register...], alternativ auch strncat.
08/04/2014 21:37 Black Tiger ツ#3
Falls du C benutzt, muss du noch einen Null-Terminator initialisieren:

Code:
char command[100];
command[0] = '\0';         <-- Diesen hier

strcat(command, "Hello World ");
Bei C++ reicht:

Code:
char command[100] = {};
strcat(command, "Hello World ");
08/05/2014 01:20 MrSm!th#4
In C++ würde man std::string verwenden.
08/08/2014 11:31 Computerfreek#5
Quote:
Originally Posted by Black Tiger ツ View Post
Falls du C benutzt, muss du noch einen Null-Terminator initialisieren:

Code:
char command[100];
command[0] = '\0';         <-- Diesen hier

strcat(command, "Hello World ");
Bei C++ reicht:

Code:
char command[100] = {};
strcat(command, "Hello World ");
Zur C-Variante:
Bei solchen Sachen empfiehlt es sich, einfach via memset(&command, 0x00, 100) den kompletten Chararray auf 0x00 zu setzen damit man ebendieses Problem am Ende nicht hat.