使用recv通过套接字接收数据时,我注意到:
字符缓冲区[4]; memset(缓冲区, 0, 4); recv(socket, 缓冲区, 4, 0);
我收到
消息
“mesg”是我发送的,附加了一些随机字符。
如果我使用
char * 方法 = (char *) malloc(4); memset(缓冲区, 0, 4); recv(socket, 缓冲区, 4, 0);
相反,我收到
消息
所以没有随机的东西附加到我的字符串中。我发现如果我使用 char[5] 代替它也可以,但我真的不明白为什么。malloc(4) 真的分配了 5 个字节,第五个是 NUL 吗?