簡體   English   中英

在C ++中刪除字符數組的內容

[英]deleting the contents of a character array in C++

我已將字符數組初始化為:char Buffer [1000] = {0}; 在這個數組中,從套接字接收數據並顯示每次我顯示這個數組的內容,我想再次將其所有內容初始化為零。 如果我不這樣做並再次使用相同的數組從套接字讀取數據,則還會顯示數組中存在的一些舊數據。 我使用memset()函數在第二次接收數據之前再次使用零初始化數組的所有內容,但它不起作用。 在c / c ++中有沒有其他方法可以做到這一點? 尋求幫助:(

recvfrom的合同不保證在收到的消息結束和緩沖區結束之間內存會發生什么。 這就是recvfrom返回有效字節數的原因。 緩沖區的其余部分不會更改,它會被垃圾覆蓋。

更改

memset(receiveBuffer,'\0',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的循環以重置陣列的內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM