1
なぜコール後c_str()unique_ptrは有効なwstringを指さないのですか?c_str()を呼び出した後のunique_ptrが有効な値を指していません
wstring encrypt = L"hello";
LPCWSTR decrypted = DecryptString(&EncryptString(encrypt)[0]).get()->c_str();
unique_ptr<wstring> DecryptString(LPCWSTR str)
{
unique_ptr<wstring> decryptedStr = make_unique<wstring>();
decryptedStr.get()->resize(wcslen(str)/sizeof(WCHAR) + 1);
wstring key = L"123";
for (int i = 0; i < wcslen(str)/sizeof(WCHAR); i++)
{
(*decryptedStr.get())[i] = str[i]^key[i % key.size()];
}
return decryptedStr;
}
をところで、あなたは 'に.getを使用する必要はありません() - >' 'のstd :: unique_ptr'に。 ' - >'だけでもうまくいくでしょう。 – aschepler
ここで 'std :: unique_ptr'をなぜ使用していますか?なぜ 'std :: wstring'だけではないのですか? – Galik
私はあなたに同意しますunique_ptrここでは有用ではありません。 – Xor