warum stürzt es bei strcat ab ?
-
das gibt mir 17 zurück, also genug platz eigentlich
trotzdem danke schonmal
-
An welcher Stelle gibt er Dir 17 zurück?
Bevor Dustrcat(bla1, bla2); //add exe
machst oder hinterher?
-
vor dem ersten strcat, danach ist es natürlich 17 + anzahl des hinzugefügten
-
hi
schau dir den strcat nochmal an
zuerst strcpy, dann strcat
void GetInfo(char bla1[60], char bla2[15]) { strcpy(bla1, "\\userdata\\temp\\"); strcat(bla1, bla2); //add exe printf("systeminfo: %s\n", bla1); }
-
danke
und wieso ?
-
ich denk strcat war schon richtig. Aber 30 Zeichen für den Buffer ist wahrscheinlich zu klein.
-
Vor dem ersten strcat, soso....
Erkennst Du das Problem von selber?
17 Zeichen plus "\\userdata\\temp\"(=15 Zeichen) plus "blablabla" (=9 Zeichen) ergibt was?
RICHTIG, 41 Zeichen!
Wieviel Platz hast Du reserviert? 30? Bei wieviel Zeichen geht's? 41? Noch Fragen?
-
stimmt, bashar, da wird wohl schon vorher was reingetan, habe ich ignoriert
wird ein überschritten sein der buffer
-
ne aber das wird doch in bla1 gespeichert und der hat doch 60
oder seh ich das falsch
-
Du siehst es falsch!
Du übergibst doch der Funktion
GetInfo(SysDir, "blablablabla");
die Variable SysDir, und die hat nunmal nur Platz für 30 Zeichen!