我正在用C++/CX編寫Windows手機應用程序。的函數試圖輸入數組複製到輸出數組異步:修改捕獲的數組C++ 11 lambda函數
IAsyncAction CopyAsync(const Platform::Array<byte, 1>^ input, Platform::WriteOnlyArray<byte, 1>^ output)
{
byte *inputData = input->Data;
byte *outputData = output->Data;
int byteCount = input->Length;
// if I put it here, there is no error
//memcpy_s(outputData, byteCount, inputData, byteCount);
return concurrency::create_async([&]() -> void {
memcpy_s(outputData, byteCount, inputData, byteCount); // access violation exception
return;
});
}
該功能編譯,但不能正確運行,併產生一個「訪問衝突異常」。我如何修改輸出數組中的值?
'output-> Data'的值在函數頂部捕獲並在lambda內使用它之間發生變化。 –