何か創りたい。
http://toshirr.blog13.fc2.com/
* Toshi's Recess Room - Toshi Creates. - せっかくの教訓だから
<< 2017/07 - 2017/08 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 - 2017/09 >>

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[ No. ]
[ 日時 : --/--/-- (--.) --:--:-- ]
[ カテゴリ : スポンサー広告 ]


せっかくの教訓だから

今日はありがちなようなそうでもないような事態に幾分悩まされました。

ファイルから読み込んだデータを構造体に直で落とし込もうとしていたわけですが、
デバッガで見ると、あらかじめバイナリ エディタで見ていたのとは違う値が入っています。
ファイルも構造体の宣言も間違っていません。

あるメンバに入っていたデータが、直前のメンバに入っていたデータの直後のものではなく
1 バイト後ろにズレていたところのものだったのです。
直後にあるデータが飛ばされるのはなぜかと考えていたら、単純なことを見落としていました。

sizeof( 直前のメンバ ) == 5 だったのです。それは char 型の配列でした。
そのためアラインメント調整が働き、次のメンバは 1 バイト飛ばされたところに割り当てられ、
結果としてズレた状態でデータが読み込まれたというわけです。

原因はそれだったのですが、それより重大なことがあります。
「以前にも同じようなことを経験して意識していたはずなのに、今回忘れていた」のです。
もうアレなんでブランクのせいにします。

コードに手をつける度に頭をひねりますけど、こういうひねり方はしないようにしたいものですね。
スポンサーサイト

[ No. 858 ]
[ 日時 : 2009/10/11 (Sun.) 22:41:51 ]
[ カテゴリ : プログラミング ]
[ コメント : 1 ]
[ トラック バック : 0 ]


コメント

[ No. 219 ]
[ 日時 : 2009/10/17 (Sat.) 14:46:53 ]
[ 名前 : BlogPetのOverhand # - ]
[ URI : http://www.blogpet.net/profile/view/8065ec4f87116c7b89a25bec17649460 ]
[ タイトル : Overhand ]

Overhandは、事態も調整♪


コメントの投稿









トラック バック


トラック バック URI

http://toshirr.blog13.fc2.com/tb.php/858-30959463


前後の記事

これ以降に書かれた記事 : せっかくの教訓だから(BlogPet)
これ以前に書かれた記事 : 色んな状況があるわけで

プロフィール

Toshi

  • Author:Toshi
  • 何かを創りたい Toshi の記録


ブログ内の検索


最近の記事


最近のコメント


最近のトラック バック


カレンダー

07 | 2017/08 | 09
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 - -


月別の記事


カテゴリ別の記事


RSS フィード


<< 2017/07 - 2017/08 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 - 2017/09 >>
* Toshi's Recess Room - Toshi Creates. - せっかくの教訓だから
http://toshirr.blog13.fc2.com/
(C) 2005 - 2009 Toshi, All Rights Reserved.

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。