質問: ntohl(x); // オーダー解決 ``` yoh2さんの方法を使えばバイトオーダーも同時に解決できそうですね。 ご回答していただいた通り、このようなことをするよりも素直にmemcpyを利用しようかとも思っています。 【さらに追記】 よく考えたら任意の場所から取り出して最後の3バイトを取り出す場合もありそうなので、やはり上記コードは使えなさそうです。 最初の意図を明確にしておくと、 インプットデータはネットワークバイトオーダーのバイト配列でした。 それの3バイト目までをintとして扱いたいマシンはリトルエンディアンマシン。。でしたが、この質問を書き、回答を読んで将来ビッグエンディアンで使う可能性もあると思い直しました。 なので、ビットシフトなどは今回の用途では使わない方向でいきます。
回答: たぶんこれでいけると思います。 ``` int i[3]; i[0] = c[0]; i[1] = c[1]; i[2] = c[2]; ```