I have the following code to convert 2 hex digits to a byte value:
const char* data= "Some hex string";
unsigned char temp=' ';
sscanf(data, "%2hhx", &temp);
When running it I get a run time exception, saying
stack around variable temp is corrupted
What am I doing wrong? AFAIK 2hhx
should convert two bytes to one...
Are you sure your compiler and standard library support that particular specifier? It is new in C99.
Microsoft for example doesn't support it, according to this:
http://msdn.microsoft.com/en-us/library/xdb9w69d.aspx
This means that the
hh
is probably interpreted as a singleh
and it therefore expects a pointer tounsigned short
, notunsigned char
.