背景: ソケット セッションの一部として配列を char* として受け取っています。ここで、トークン (HTTP ヘッダー) を一致させる必要があります。ここでのコードは、UBYTE* を作成し、UBYTE で型キャストした後に char 配列から値を取得したことです。後で同じ UBYTE ポインターを、char* に型キャストした後に char* を受け入れる他の関数に渡します。
ここでの問題は、これがデバッグ ビルドではなくリリース ビルドで機能することです (-g と異なる最適化を使用)。デバッグモードでいくつかの印刷を追加するだけでなく、問題が隠されます。
ここでの私の質問は、UByte ポインター (本質的に符号なしの char) と char ポインターの違いは何ですか。UByte を char に変更すると、すべてのモードで問題が解決しますが、同じことについて説明がありませんか? 何かご意見は ?