Podczas odbierania danych przez gniazdo przy użyciu recv, zauważyłem, że z:char array vs. wskaźnik char
char buffer[4]; memset(buffer, 0, 4); recv(socket, buffer, 4, 0);
otrzymam
mesgx
"mesg" jest tym, co wysłałem, z dołączonymi losowymi postaciami.
Jeśli używam
char * method = (char *) malloc(4); memset(buffer, 0, 4); recv(socket, buffer, 4, 0);
zamian otrzymam
mesg
Więc nie ma random stuff dołączany do mojego łańcucha. Stwierdziłem, że jeśli użyję char [5], to działa tak samo, ale tak naprawdę nie rozumiem dlaczego. Czy malloc (4) naprawdę przydziela 5 bajtów, a piąty to NUL?
Myślałem tak samo, ale dlaczego to działa z malloc? – fresskoma