二分木を下から上にトラバースしたい。
次に、このトラバージョン(=道)のビットシーケンスをcharに保存したいと思います。
この動作は動的でなければならないため、ビットシーケンスが 8 ビットを超える場合、char は動的に拡張する必要があります (たとえば、2 バイトなど)。
ビットシーケンスがたとえば 1001010 の場合、まったく同じビットシーケンスを char 内に格納したいと考えています。
ビットシフト演算子 << >> を使用する必要があることはわかっていますが、正しい方法がわかりません。
char に 8 ビットを書き込んだ後、問題が発生しました。
サンプルコードを添付しました。うまくいけば、誰かが光を当てることができます。
ありがとう
char* bits = malloc(sizeof(char));
char* temp_bits = NULL;
some loop
{
if (cnt_bit > 7)
{
temp_bits = realloc(bits, sizeof(char)*2);
free(bits);
bits = temp_bits;
}
*bits = *bits << 1;
*bits = *bits | 0;
cnt_bit++;
}