記事一覧

大ショックでした

仕事で書いてたプログラムで
思った通りに動かない関数があって
その関数と全然違うところをいじると
正常に動作したりする場合があって
その原因が究明できなくて数日悩んでたんだけど
その原因がものすごく単純な勘違いで
そんな単純なミスをした自分がすごくなさけなくて
ガックリしてました。

一言でいうと「null終端が1文字ずれてました」

C言語の分かっている人向けにどんなミスだったのかを
似た様な内容の例をあげて説明すると、
配列str[]があったとして、そこに文字を4つ入れて
その直ぐ後ろにエンゼロを入れなきゃならなかったんだけど、
間違ってstr[5]にエンゼロを代入してました、という感じのミスです。

0から始まるから5文字目はstr[4]なのにね。
str[4]の初期値が丁度エンゼロになる場合は
正しく動作しちゃうせいで気づくのが遅くなりました。

いくら久しぶりのC言語だからって
本当にもう何やってんだか・・・
いやあ、でも原因が分かって一安心。
でも、安心する前に類似したミスがないか、ちゃんとチェックをしとこう、
とここに書くことで自分に言い聞かせるのであった。

コメント一覧

ごろ~ 2010年03月23日(火)20時31分 編集・削除

まぁ単純なスペルミスはままあるw
そういう時は人に見てもらうと自分じゃわからない視点でみてくれるぞ

tomo@管理人 2010年03月23日(火)23時16分 編集・削除

 >> そういう時は人に見てもらうと自分じゃわからない視点でみてくれるぞ

そうなんだよね~
ソースコードレビューとか
そういうことが出来る余裕のある体制で
仕事したいよね~

そして今、初めて「>>」で引用しようとすると文字の色的に見づらいことが分かった。

>>こんな感じで見づらい

余裕が出来たら設定を変更しておこうっと

コメント投稿

投稿フォーム
名前
Eメール
URL
コメント
削除キー
公開設定