固定長の unsigned char 配列を取り、フォーマットされた char * として返すヘルパー関数があります。しかし、私はいくつかの問題を抱えています。
私は試した
char* byteArrayToString(unsigned char byte[6]) {
char t[18] = {""};
char* str = t;
sprintf(str, "%02X:%02X:%02X:%02X:%02X:%02X", byte[0], byte[1], byte[2], byte[3], byte[4], byte[5]);
return str;
}
と
char* byteArrayToString(unsigned char byte[6]) {
std::string t = "";
char* str = t;
sprintf(str, "%02X:%02X:%02X:%02X:%02X:%02X", byte[0], byte[1], byte[2], byte[3], byte[4], byte[5]);
return str;
}
と
char* byteArrayToString(unsigned char byte[6]) {
char* str = new char();
sprintf(str, "%02X:%02X:%02X:%02X:%02X:%02X", byte[0], byte[1], byte[2], byte[3], byte[4], byte[5]);
return str;
}
2 番目のものは、その文字列の値が変更されるといういくつかの副作用をもたらします。最初のものはジャンク値と最後のセグメント障害を私に与えることになります(しかし、私はその理由を理解できません).