本日のプログラミング放送(7/16)
閉じる
閉じる

新しい記事を投稿しました。シェアして読者に伝えましょう

×

本日のプログラミング放送(7/16)

2014-07-16 22:35
    本日も育成ゲームのソースの修正を行います。
    paint関数

    データの操作は、Lbuttonの中に限定した
    方がよい。244行目から263行目は、本来は377行目
    付近に書いてあるのが望ましい。

    gyou関数

    ※バグ:意図した通りの挙動をしない
    原因:360行目が、else ifでないため、上で0に設定
    した直後、xにstartが代入されてしまう。



    Lbutton関数

    ※バグ:リソースリーク
    369行目のGetDC関数で取得したDCハンドルがReleaseDC
    で解放されていない。
    そもそも関数の最後で画面全体を再描画しているのに
    Lbutton関数中で画面を修正する必要はない。
    368、369、392、418、419、444、445、469、470、493、
    494行目は全て不要。



    すべて削除以下略

    loadMsg関数

    ※バグ:ファイルを途中までしか読みこめない
    bufの型に問題があります。521行目
    fgetcという関数の戻り値はint型。
    もし、ファイルの途中に\xFFという文字がにあると、16進数\xFF(255)
    そこで読み込みを終了してしまう
    fgetc
    読み終わったらEOF(-1)で、文字を読みこんだら0から255までの間で返してきます
    charで受け取ると、-1と255の区別ができなくなるのだ
    charは、-128から127まで
    んで、255を代入しようとすると、-1になるの



    528行目529行目修正
    ※バグ:バッファオーバーラン
    もし、テキストファイルの長さが1001行あったら?
    もし、1行の長さが10001文字だったら?
    たとえ自分で入力ファイルを用意する場合でも、
    添え字のチェックは怠るべきではない。
    ※forの2番目を活用すべしってことで
    何回まで繰り返すか、っていう条件のとこ。これを書くだけで最悪の事態を回避できる
    だから、0から9999までやってね、でも途中でbreakがきたらやめていいよ

    本日もお疲れ様でした。次回はコメントについて学習します。
    広告
    コメントを書く
    コメントをするには、
    ログインして下さい。