何年やってんだorz

ここからは少しCコーディングのお話。*1


とあるツールの改造を行った際、改造後のツールが必ずダウンしてしまう様になった。
改造前と改造後では、ダイアログのリソースが一部追加になっただけで、内部処理は
ほとんど変わらない。
二時間ぐらいデバッガで追ってみても原因がわからんので、泣く泣く先輩に問題のソースを
みてもらう事に。


数分後。


内部処理のうち、iniファイルから取得した数値の分だけ領域を確保し、その中へ
更にiniファイルから取得した文字列を次々に格納していく処理があったのだが、
その処理がwhile文で繰り返されていたのと、その終了条件が
『iniファイルから取得&格納した文字列がデフォルト値だった場合』*2
だった為、結局は「最初に領域を確保した数+1」分の領域を無理矢理参照していた事が
原因と判明。


他人が作ったソースとは言え、よく考えてみれば気付く不具合の検証に半日を費やしてしまい、
教室で一人、さらに凹んでいましたとさ、めでたしめでたし。

*1:仕事じゃないですよ、実習ですぢょ?

*2:詳しくは「GetPrivateProfileString」のヘルプを参照してね(はぁと)