sscanf()/sscanf_s 缓冲区会溢出的问题

void OnTest() 
{
// TODO: Add your control notification handler code here


CString result="30-00-00-00-30-3F";
unsigned char  val[6]={0};



 
         sscanf_s(result, "%x-%x-%x-%x-%x-%x", &val[0], &val[1],&val[2],&val[3],&val[4],&val[5]);

CString strTemp;
strTemp.Format("%2x-%2x-%2x-%2x-%2x-%2x",val[0],val[1],val[2],val[3],val[4],val[5]);

AfxMessageBox(strTemp);

}


// ERROR: 缓冲区会溢出;

分析: sscanf() 中 %x输出是一个32位正整数,  VAL  装载不下;    

应该  将  unsigned char   ------>  UNIT  即可  


你可能感兴趣的:(sscanf()/sscanf_s 缓冲区会溢出的问题)