[C/C++]Paiza.IOにてランタイムエラーで詰まった話(超基礎)。
先日PaizaIOでC++のコードを書いて走らせていたら、何度やっても
となる現象に遭遇しました。
コードを見直しても、特におかしいところはなさそうなので、はてなと思い、ググってみたら、
input欄が空欄になっている。
リストなどで存在しない箇所にインデックスでアクセスしようとしている。
といった場合に起こりうるとの情報は入手しました。
ですが、私の場合はそのどちらとも違うのです。
そしてにらめっこすること10分、超くだらない冗談みたいなミスをしていたことに気付きました。
int main(void){
return 1;
}
「return 1;」!?
そうです、なにをとち狂ったのか、最後の戻り値を正常終了を表す「return 0;」ではなく、異常終了を表す「return 1;」にしていたのでした。
(というかこういう場合も、Runtime error(Exit status:1)という表示になるんですね)
(追記:なぜこんなミスをしたのかよく考えてみたら、思い当たることが一つ・・・。
普段C言語やC++を書くときmain()の終わりに「return 0;」をきちんと書く習慣がなく、書くときといえばC言語のmallocの際のNULLチェックで、
if (lists == NULL) return 1;
と使うことが多かったので、その勢いで書いてしまったようです・・・。)
この場合の「Runtime error(Exit status:1)」の特徴としては、
コードが間違いなく最後まで走っている。
出力例も期待するものに合致している。
なのになぜかエラーがおまけでくっついてくる。
というものになります。
同じ状況で困っている方は「return 1;」になっている可能性があります・・・。
あまりにも単純すぎる話なのか、ググっても全然出てこなかったので、こういうこともあるんだな、ということで一応書いておきました。
誰かの役に立つかはわかりませんが、慌てているとこんなことを見落としているかもしれませんよ、ということで。