わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

一斉送信への対応

木曜の朝に一斉送信しまして,何人かから,「どう修正すればいいのでしょうか?」と問い合わせがありました.
確かに,こちらで動作確認すると,問題なさそう.
それでTAの院生から情報をもらうと…コードにまずい点があって,用意していた動作確認方法では,そのまずいのを検出できなかったのでした.こんな感じ:

  • strncpyでコピーして,コピー先の末尾に'\0'をつけていませんでした.…これは,strcpyとstrncpyの大きな違いとして,注意しないと.
  • 使用するライブラリ関数に対して,適切な#include文がありませんでした.…C言語では,#include文がおざなりでも,コンパイルできたりしますので.
  • *strchr(文字列,文字)='\0'; と書いていました.…ある入力に対して,strchrの戻り値がNULL (文字が見つけられなかった)となってしまい,言ってみれば0番地のアドレスに'\0'を書き込もうとしていたのでした.

「(演習室で)動けばいい」を超えて,この種の,たちの悪いバグのもとを一つ一つ指摘していくのも,プログラミング能力向上に欠かせないもの…と考えて,昨日の朝はバグをつきとめ,それぞれの学生に返信しました.