Wenn Daten über eine Socket empfangen recv Verwendung Ich habe festgestellt, dass, mit:char Array vs. char Zeiger
char buffer[4]; memset(buffer, 0, 4); recv(socket, buffer, 4, 0);
I
erhaltenmesgx
"mesg" ist was ich gesendet habe, mit einigen zufälligen Zeichen angehängt.
Wenn ich
char * method = (char *) malloc(4); memset(buffer, 0, 4); recv(socket, buffer, 4, 0);
stattdessen erhalte ich
mesg
So gibt es keine zufälligen Sachen meinen String angehängt. Ich habe herausgefunden, dass wenn ich char [5] benutze, es auch funktioniert, aber ich verstehe nicht wirklich warum. Ordnet malloc (4) wirklich 5 Bytes zu, wobei der fünfte ein NUL ist?
Ich dachte so viel, aber warum funktioniert es dann mit malloc? – fresskoma