swprintf を使用して文字列をバッファに作成しています (特にループを使用しています)。
const int MaxStringLengthPerCharacter = 10 + 1;
wchar_t* pTmp = pBuffer;
for ( size_t i = 0; i < nNumPlayers ; ++i)
{
const int nPlayerId = GetPlayer(i);
const int nWritten = swprintf(pTmp, MaxStringLengthPerCharacter, TEXT("%d,"), nPlayerId);
assert(nWritten >= 0 );
pTmp += nWritten;
}
*pTaskPlayers = '\0';
テスト中にアサートがヒットしない場合、実際のコードではヒットしないと確信できますか? つまり、nWritten < 0 であるかどうかを確認して処理する必要がありますか?それとも、問題がないと安全に想定できますか?
どのような状況で -1 を返すことができますか? ドキュメントには、多かれ少なかれ「関数が失敗した場合」と記載されています。ある場所で、引数(つまり、フォーマット文字列と可変引数)が一致しない場合に失敗することを読んだことがありますが、それは心配ありません。
この場合、バッファ オーバーランについても心配していません。バッファが十分に大きいことはわかっています。