我有一個用例,我需要每次都傳遞boost :: shared_array。如果緩衝區沒有被完全使用,我想創建一個相同的存儲空間的新指針但其中的日期已經被寫入使用boost :: shared_array
示例代碼點:
boost::shared_array<uint8_t> buffer;
boost::shared_array<uint8_t> placeHolder;
buffer.reset(new boost::uint8_t[1024 * 1024]);
placeHolder = buffer;
uint32_t maxSize = 1024 * 1024;
uint32_t dataCopied = 0;
while(dataCopied < 1024 * 1024)
{
uint32_t bytesWritten = getData(placeHolder, maxSize); //This call might give any size of data less than boost::shared_array<uint8_t> buffer;
placeHolder = boost::shared_array<uint8_t>(buffer.get() + bytesWritten);
}
不幸的是,這是崩潰了我出來任何線索。 任何建議這個概念出了什麼問題?
一個問題是,你在循環內部隱藏了'placeHolder'變量。 –