テキストとバイナリの混ざったデータの扱い

[戻る]
さおり 2002/05/21(火) 12:14:13
こんにちは。表題の件でわからないことがあり教えて欲しいです。

空っぽの文字型の配列をある関数に渡すと、配列の前半がテキストで後半がバイナリに
なるようなデータを返して来ます。
配列の大きさはchar型で充分な大きさで確保しているので領域をはみ出す事は
ないのですが、バイナリ部分を文字としてみようとしても、バイナリの途中で
'\0'となるようなデータがあるとその部分で文字列が終了してしまいます。

そういうわけでテキスト部分には通常の文字列用関数を使い、
バイナリ部分には、ポインタをずらしながら読んでいけば処理は可能と
考えてはいるのですが、配列の範囲外にアクセスしない限りは
こう言った事は一般的にやってもいいことなのでしょうか?
テキスト部分が終了しているのに強引にその後ろまでアクセスしているのが
悪さするようなことがあるでしょうか?
それともchar型で定義しているのが変なのでしょうか?

質問が長くなった上に分かりづらいですが、宜しくお願いします。

ワルツ 2002/05/21(火) 12:25:16
配列のインデックスの範囲がわかっているならば、それを超えないように処理すれば
問題ないでしょう。
mem〜系の関数とかは単純にバイト単位で処理するのでそれを使うとか、
ほんとに、1バイト単位でみていくとか。

Jun 2002/05/21(火) 18:06:57
ちなみに、読むだけなら範囲外でも大丈夫だと思うよ。

さおり 2002/05/22(水) 12:13:12
[[解決]]
テキスト部分はともかく、バイナリ部分は
mem〜かポインタずらしで見ていこうと思います。
バイナリデータは扱いが面倒ですね。
ワルツさん、Junさん、返答ありがとうございました。

古いスレッドには追加発言できません。