Ich habe einige Zweifel beim grundlegenden C-Programmieren.
Ich habe einen Zeichenarray und muss es in einen Zeiger auf ein Zeichen kopieren. Also habe ich folgendes gemacht:
char a[] = {0x3f, 0x4d};
char *p = a;
printf("a = %s\n",a);
printf("p = %s\n",p);
unsigned char str[] = {0x3b, 0x4b};
unsigned char *pstr =str;
memcpy(pstr, str, sizeof str);
printf("str = %s\n",str);
printf("pstr = %s\n",pstr);
Meine printf-Anweisungen für pstr und str werden mit den Daten "a" angehängt. Wenn ich memcpy entferne, erhalte ich Müll. Kann mich ein C-Guru erleuchten?
0 Stimmen
Du kopierst kein Array in einen Zeiger. Du erhältst einen Zeiger auf das erste Element eines vorhandenen Arrays. Keine Kopie.
0 Stimmen
Ich sehe nicht, wo etwas "angehängt" wird.