因此,我使用我的程序將我的Rasperry Pi相機傳輸到我的電腦,但是。下面列出的向量給我的問題。它在流式傳輸大約30秒後給了我std::bad_alloc
。有什麼方法可以在循環中一遍又一遍地重複使用這個向量(例如調整大小,清除)? 這裏是簡化代碼:如何重新使用設置元素的向量?
while(isRunning)
{
recv(Connection, received_message, sizeof(received_message), NULL); //receiving the size of image in bytes
fileSize = atoi(received_message);
std::vector<char> fileData(fileSize); //<- this vector is giving me problems
recv(Connection, &fileData[0], CHUNK_SIZE, 0); //Receiving the image
//The code loops over and over again
}
這段代碼沒有意義。你不能傳遞一個指向recv函數的向量。它應該比30多歲後快速崩潰。 –
@MK,OP傳遞一個指向矢量元素的指針(所以,一個'char *'),而不是整個矢量。 – SingerOfTheFall
也注意到沒有什麼可以阻止'recv(Connection,received_message,sizeof(received_message),NULL);'只返回'received_message'的一部分,導致完全搞砸了'fileSize'。 – user4581301