当使用 recv 通过套接字接收数据时,我注意到以下代码:
如果我使用以下代码:
char buffer[4]; memset(buffer, 0, 4); recv(socket, buffer, 4, 0);我接收到的是 "mesgx��",其中 "mesg" 是我发送的内容,后面附加了一些随机字符。
如果我使用以下代码:
char * method = (char *) malloc(4); memset(buffer, 0, 4); recv(socket, buffer, 4, 0);我接收到的是 "mesg",没有随机字符附加在我的字符串末尾。我发现如果我使用 char[5],它也可以正常工作,但我不太明白为什么。malloc(4) 真的会分配 5 个字节吗?第五个字节是 NUL 吗?