Hallo Sinatra,
warum funktioniert folgender Code nicht?
was erwartest Du, was passiert?
Kommentare wären übrigens auch ganz nett - vor allem bei Anfängercode.
char* request = NULL;
char buffer[] = {"Hallo World!"}; // wozu die geschweiften Klammern?
// nicht falsch, aber überflüssig.
char* p = NULL;
p = request; // Hmm, keine Änderung
// p enthält immer noch einen Nullzeiger
p += strlen(request); // Hier erzeugst Du einen Laufzeitfehler ...
for(unsigned short i = 0; i < strlen(buffer); i++) {
*p = buffer[i];
p++;
}
*p = '\0';
printf("%s", request);
>
> Meiner bescheidenen Meinung nach müsste der Code funktionieren,
Meiner Meinung nach dürfte der Code einen Laufzeitfehler produzieren. Unter DOS gäbe es anschließend einen Rechnerneustart. Was für ein Glück, dass die Zeiten sich geändert haben.
Wenn Du eine Zeichenkette kopieren möchtest, dann solltest Du die dazu vorgesehenen Funktionen von C nutzen. Unter C++ solltest Du sowieso zur String-Klasse greifen :-)
Bitte beschreibe daher, was Dein Code bewirken soll - und was er bewirkt.
Was haben Deine Debug-Versuche ergeben?
Freundliche Grüße
Vinzenz