0
我一直在使用本頁面發現MD5實現:sprintf的正常工作,sprintf_s給訪問衝突錯誤
http://www.zedwood.com/article/121/cpp-md5-function
由於這是它工作正常。然而,有這樣的功能:
// return hex representation of digest as string
std::string MD5::hexdigest() const
{
if (!finalized)
return "";
char buf[33];
for (int i=0; i<16; i++)
sprintf(buf+i*2, "%02x", digest[i]);
buf[32]=0;
return std::string(buf);
}
如果我改變的sprintf到安全的版本(sprintf_s),然後我得到一個訪問衝突運行時錯誤。我唯一改變的是sprintf行,像這樣:
sprintf_s(buf+i*2, 33, "%02x", digest[i]);
它編譯得很好,但後來我得到了錯誤。任何想法爲什麼?
當然......非常感謝! – Michael 2013-02-21 23:31:33