重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

いつも大変お世話になっております。
連日すみません。
以下のfor文で
変数mが初回から「7」になってしまい、困っています。
if(m=0...)を通過した後、次の行でmが「7」に変わっています。
なぜなのか理由がわかりません。
この変数を他の文字に変えても事象は同じです。
renzokuは「6」が代入されています。
初回から「7」になってしまうため、1回で処理が終了してしまい、困っています。
作り直すべきでしょうか?
かなり関数を書いたので、移植するときにミスをしないか心配で
このままこの文を修正して済むようであればそうしたいのですが。。
int m = 0;
if (renzoku > 4)
{
for (m = 0; m < renzoku + 1; m++); {
printf("m = %d\n", m);
out_img->imageData[out_img->widthStep * (point_y[m]) + (point_x[m]) * 3] = 0;
printf("m = %d\n", m);
out_img->imageData[out_img->widthStep * (point_y[m]) + (point_x[m]) * 3 + 1] = 0;
printf("m = %d\n", m);
out_img->imageData[out_img->widthStep * (point_y[m]) + (point_x[m]) * 3 + 2] = 0;
printf("m = %d\n", m);
}
}

どうぞよろしくお願い致します。

A 回答 (2件)

for (m = 0; m < renzoku + 1; m++);



になってるので、このfor文は空文を繰り返すだけですね。;を外しましょう。
    • good
    • 0
この回答へのお礼

ありがとうございました!
空文になるとは知りませんでした。
覚えます。
すぐにコメントをくださり助かりました。

お礼日時:2015/01/09 01:16

小学生並の感想:


1)インデントを付ける習慣をつけたほうが良いと思います。見にくいです。

2)エディタによっては自動でインデントするので、インデントレベルの不正によりバグに気付く事があります。

3)for (m = 0; m < renzoku + 1; m++); {
 この行がおかしいです。
「;」により for(snip){/*空文*/;} { と同じになっています。

4)ステップ実行していけばすぐ判るので、ステップ実行できるようになりたいねぇ。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!