[英]C++ Delete Pointer to array of pointers without deleting the contents [Memory Leak]
[英]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.