在c++中删除字符数组的内容

deleting the contents of a character array in C++

本文关键字:数组 字符 c++ 删除      更新时间:2023-10-16

我已经初始化了一个字符数组:字符缓冲区[1000]= {0};在这个数组中,数据从套接字接收并显示每次我显示这个数组的内容时,我想再次将其所有内容初始化为0。如果我不这样做,并再次使用相同的数组从套接字读取数据,数组中存在的一些旧数据也会显示出来。我使用memset()函数在第二次接收数据之前再次用零初始化数组的所有内容,但它没有工作。在c/c++中还有其他的方法吗?寻求帮助:(

recvfrom的契约并不能保证在收到消息结束和缓冲区结束之间的内存会发生什么。这就是recvfrom返回有效字节数的原因。缓冲区的剩余部分不改变,它被垃圾覆盖。

改变
memset(receiveBuffer,'',1000); 
recv_len = recvfrom(socketIdentifier, receiveBuffer, sizeof(receiveBuffer), 0, (struct sockaddr *) &clientSocket, &clientSocketLength);

recv_len = recvfrom(socketIdentifier, receiveBuffer, sizeof(receiveBuffer), 0, (struct sockaddr *) &clientSocket, &clientSocketLength);
if (recv_len > 0)
    memset(receiveBuffer + recv_len, 0, 1000 - recv_len); 

接收并显示数据后,运行从0到999的循环,重置数组的内容