配列を16進数に変換して文字列変数に入れようとしています。次のループでprintfは正常に動作しますが、sprintfを正しく使用することはできません。 16進値をASCII形式で配列に埋め込むにはどうすればよいですか?'sprintf'を使って16進数を文字列に変換する
static unsigned char digest[16];
static unsigned char hex_tmp[16];
for (i = 0; i < 16; i++) {
printf("%02x",digest[i]); <--- WORKS
sprintf(&hex_tmp[i], "%02x", digest[i]); <--- DOES NOT WORK!
}
非常に悪いエラーの説明があり、「動きません」。それはクラッシュしますか?コンパイルエラーが出ますか?エラーは発生しませんが予期しない結果はありますか?予期しない結果は何ですか?代わりにあなたは何を期待しましたか? – sth
あなたの質問に対する部分的な答えはここにあります:(16 * 2)+ 1とは何ですか?ループは0から??まで実行されます。何回繰り返しますか? – JimR