16進数の1バイトをchar文字列に変換しようとすると、3バイトかかることがわかります。私はVisual Studio 2013を使用しています。16進数の1バイトを文字列に変換する
3バイト未満の場合、「変数 'str'の周りのスタックが壊れています」というエラーが表示されます。
私は間違っていますか?確かに16進数値0xF1はchar str[1]
に収まるはずですか? 1バイトの値を割り当てるために3バイトの配列を宣言しなければならないのはなぜですか?
char str[3];
sprintf(str, "%02X", 0xF1);
str
の内容は0x0026fd18「F1」である
「F」、「1」、および 'NUL'があります。これは3バイトです。 –