C で簡単な行列乗算器を作成しました。MBA でコンパイルして正常に動作します。ただし、学校の Linux ボックスでコンパイルして実行すると、無限ループに陥ります。
これは私のgccコンパイルです
gcc -Wall prog1.c -o prog1
これは、MBA で使用している gcc のバージョンです
i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build
2336.11.00)
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
これは、学校のサーバー上の gcc のバージョンです。
gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-3)
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
ここにコードへのリンクがあります。
編集:申し訳ありません!入力検証で無限ループが発生します。私は自分のコードをデバッグするためにprintfステートメントを使用してきましたが、それでもなぜそこにスタックするのか理解するのに苦労しています. 181 行目の for() は、「+」または「-」に遭遇した後もループし続けます。
2 つの行列にそれぞれ 8 つの整数を入力するため、コマンド ライン パラメーターは 16 です。
私はそれが別のコンパイラまたは私のコードの問題であると絶対に確信しているわけではありません! MBA では期待どおりの結果が得られましたが、Red Hat マシンでは得られなかったので、それが原因だと思いました。