プロが教えるわが家の防犯対策術!

MacのOSXでMPWを使ってCのプログラミングを始めました。プログラムの最後にreturn 0;を入れているのに実行すると終了しないまま止まってしまいます(エラーは起っていないようです)。今は強制終了させていますが、なぜプログラムが終了しないのでしょうか。またMPWについて詳細に解説されているサイトなどありましたら教えて頂けませんか。

A 回答 (2件)

こんにちは



C言語で、プログラムの最後にreturn 0;を書いてあっても、ここまでたどり着かなければ終了しないです。

どこかで、無限ループしていませんか。
forループ
whileループ
doループ
gotoによるループ
等ですね。
ところどころにデバッグ用に
puts("debug : コメント");
なんてものを仕込んで、プログラムの動作を確認して見ましょう。

まあ、ソースが小さければ補足して頂いてもかまいませんが。

この回答への補足

早速のご回答ありがとうございます。プログラムは非常に小さく、ループは含みません。下にプログラムの全文を示します。二つ目のprintf文を実行後にプログラムが終了になりません。

#include <stdio.h>
int main(void){
int y,x=5;
y=x++;
printf("y=%d x=%d\n",y,x);
x=5;
y=++x;
printf("y=%d x=%d\n",y,x);
return 0;
}

補足日時:2003/06/13 16:46
    • good
    • 0

こんにちは、No.1のarukamunです。



取りあえず、Windowsの環境でコンパイルして実行して見ましたが、ハングはしませんし、文法的にもハングする要因が見つかりません。

y=5 x=6
y=6 x=6

と表示して、正常に終了します。
もしかすると、Macでは
int main()
{
 ・・・
  return 0 ;
}
とかがいけないのでしょうか。

int main(void)

void main(void)
にして
return 0;
を削除してみてはいかがでしょうか?
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。どうやらMPWで作ったプログラムを走らせるとMPWが自動的に起動され、プログラムを終了させるにはMPWのメニューバーにあるFileでquitを選択しなければならないようです。

お礼日時:2003/06/16 22:18

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