下面是两函数的原型 ,函数后面部分是相同的
int sprintf_s(
   char *buffer,
   size_t sizeOfBuffer,
   const char *format [, argument] ... 
);int printf( 
   const char* format [, argument]... 
);
--------------------------------RIGHT----------------------
printf(" %s = %s\n\n" , (LPCSTR) pFldLoop->GetItem(vtIndex)->GetName(), \
(LPCSTR) (_bstr_t) pFldLoop->GetItem(vtIndex)->Value);
--------------------------------ERROR-----------------------
PCHAR  szTemp;
sprintf_s(szTemp,sizeof(szTemp)," %s = %s\n\n",  \
(LPCSTR) pFldLoop->GetItem(vtIndex)->GetName(), (LPCSTR) (_bstr_t) pFldLoop->GetItem(vtIndex)->Value);
后者提示错误是0x1029a189 (msvcr90d.dll) 处未处理的异常: 0xC0000005: 写入位置 0x004218a3 时发生访问冲突
跟踪代码到
LOCAL(void) write_char (
    _TCHAR ch,
    FILE *f,
    int *pnumwritten
    )
{
    if ( (f->_flag & _IOSTRG) && f->_base == NULL)
    {
        ++(*pnumwritten);
        return;
    }
#ifdef _UNICODE
    if (_putwc_nolock(ch, f) == WEOF)
#else  /* _UNICODE */
    [color=#333399]if (_putc_nolock(ch, f) == EOF)// 这个位置
#endif  /* _UNICODE */
        *pnumwritten = -1;
    else
        ++(*pnumwritten);
}int _putc_nolock( //Writes a character to a stream without locking the thread.
   int c,
   FILE *stream 
);请问为什么会出现这样的错误,如何解决?Thank you!