在一次使用sscanf_s解析GPS报文时报错
Run-Time Check Failure #2 - Stack around the variable 'm_bGGASecond' was corrupted.
代码如下:
DWORD dump;
int la,lo;
char ns,ew;
char m_bGGAHour;
char m_bGGAMinute;
char m_bGGASecond;
double m_dGGALatitude;
double m_dGGALongitude;
char m_bGGAGPSQuality;
char m_bGGANumOfSatsInUse;
double m_dGGAHDOP;
double m_dGGAAltitude;
sscanf_s((char*)StrData, "%02d%02d%02d.%02d,"
"%02d%lf," "%c,"
"%03d%lf," "%c,"
"%d," "%02d," "%lf," "%lf",
&m_bGGAHour, &m_bGGAMinute, &m_bGGASecond, &dump,
&la, &m_dGGALatitude, &ns, 1,
&lo, &m_dGGALongitude, &ew, 1,
&m_bGGAGPSQuality,
&m_bGGANumOfSatsInUse,
&m_dGGAHDOP,
&m_dGGAAltitude
);
经过反复调试发现为一低极错误.
%d在sscanf中解析为int , 而传入的参数为char!