1 名前:デフォルトの名無しさん [2007/05/08(火) 19:39:26 ] C言語の入門者向け解説スレです。 ・C++言語はスレ違いです。 ・分からない事をなるべく詳しく書いて下さい。 ・ソースコードを晒すと答えやすくなるかもしれません。 ・質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。 前スレ C言語なら俺に聞け(入門篇) Part 11 pc11.2ch.net/test/read.cgi/tech/1176800483/ 過去スレ Part 1 ttp://pc8.2ch.net/test/read.cgi/tech/1146700389/ Part 2 ttp://pc8.2ch.net/test/read.cgi/tech/1153818463/ Part 3 ttp://pc8.2ch.net/test/read.cgi/tech/1160682950/ Part 4 ttp://pc8.2ch.net/test/read.cgi/tech/1162999861/ Part 5 ttp://pc8.2ch.net/test/read.cgi/tech/1165022193/ Part 6 ttp://pc10.2ch.net/test/read.cgi/tech/1167325490/ Part 7 ttp://pc10.2ch.net/test/read.cgi/tech/1170064980/ Part 8 ttp://pc11.2ch.net/test/read.cgi/tech/1171946674/ Part 9 ttp://pc11.2ch.net/test/read.cgi/tech/1173284217/ Part 10 ttp://pc11.2ch.net/test/read.cgi/tech/1174290325/ 関連スレ C/C++の宿題を片付けます 86代目 pc11.2ch.net/test/read.cgi/tech/1176996941/ くだすれC言語(初心者用) Part.2 pc11.2ch.net/test/read.cgi/tech/1172099763/ スレを勃てるまでもないC/C++の質問はここで 2 pc11.2ch.net/test/read.cgi/tech/1178503366/l50 はきだめC/C++下級者の質問箱 2 pc11.2ch.net/test/read.cgi/tech/1156206091/l50 【C 関数検索 man on WWW】 www.linux.or.jp/JM/index.html
952 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 14:54:12 ] >>951 っ lop=-1 rop=INT_MIN
953 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 14:56:41 ] >>940 加減算のオーバーフローチェックはどうやったの?
954 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 15:04:30 ] >>952 これやったら落ちてビビった (MacOSX 10.4.9 Intel Core 2 Duo)
955 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 15:11:19 ] >>954 >>952 で同じく落ちた (Win98SE C7 600MHz) なんと言うか恐ろしい計算だw
956 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 15:29:19 ] >>952 これ反則だよなあ。普通の計算でも起こり得りそうで困る。
957 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 15:40:55 ] gccで落ちたコードの核になる部分だけ抽出。 -- movl $-2147483648, %eax movl $-1, %ecx idivl %ecx -- うーん、-1で割っているだけなのに。
958 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 15:49:53 ] これは勉強になった。
959 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 15:53:22 ] >>952 C#でも落ちるかなと思ったけどOverflowExceptionが出るだけだった。
960 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 15:57:11 ] >>959 Exception をキャッチしてないからCだと落ちる っつーことっしょ
961 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 16:04:16 ] Instruction Set Reference の idiv の項を見てみた。 例外 #DE (divide error) 1. 除数が 0 の場合 2. 商が大きすぎる/小さすぎる場合 の、2. に引っかかってるみたいね。 アセンブラレベルで QWORD で使うなら十分起こりうる状況だけど、 int でやってる限りは -2147483648 / -1 でしか起こらないよね、これ。 こりゃ盲点だわ。
962 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 16:07:44 ] 実数でも同じことできる?
963 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 16:14:23 ] どうでもいいけど、Linuxだと"Floating point exception"って出るんだよな。 どこがFloatingPointなんだか。
964 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 16:15:41 ] gcc@MacOSX でもそう出る。 イミフ。
965 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 16:15:56 ] >>962 起きなかった
966 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 16:18:14 ] 実数は普通の演算で例外起きたっけ?
967 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 16:19:32 ] もう面毒せーから1/0=πという数学体系を新たに定義しようぜ
968 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 16:22:10 ] 移項すると 1 = π × 0 になるんだけど
969 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 16:23:16 ] その定義上ではその移項自体がまた特殊な扱いになるのか。
970 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 16:47:17 ] >>963 English WikiからSIGFPEの項より >Although SIGFPE does not necessarily involve floating-point arithmetic, there is no way to change its name without breaking backward compatibility.
971 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 17:50:56 ] 可換環じゃなかったら最早普通の計算に使えないなw
972 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 18:17:22 ] 次のような関数を作っていて、test3の直前でセグメントエラーが 出てしまい困っています。 R[]はintのポインタの配列で、疑似二次元配列です。 R[i]とy[]のなかで共通する数をR[i+1]に代入して、 最後に0を入れる関数です。 どうしてエラーが出るのか、誰か教えてください。 void katu(int *R[], const int i, const int y[]){ int a=0, b=0, k=0; for(a=0; a<N; a++){ for(b=0; b<N; b++){ if(R[i][a] == y[b]){ print("test1\n"); realloc(R[i+1], sizeof(int)*(k+2)); printf("test2\n"); R[i+1][k] = y[b]; printf("test3\n"); k++; } if(y[b] <= 0) break; } if(R[i][a] <= 0) break; } R[i+1][k] = 0; return; }
973 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 18:20:50 ] >>972 reallocの戻り値捨ててどうするんだよ。 reallocが成功したら元の領域はアクセスできなくなる。
974 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 18:22:18 ] >>972 realloc()の使い方を勉強しろ。 それはさておき、一文字変数は判り難いだけだから止めた方がいいぞ。 #特に引き数iなんて、誤解してくれと言わんばかりだ。
975 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 18:24:42 ] i は for ループのカウンタ以外では使わないほうがいいかもw
976 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 18:32:47 ] 一文字変数はカウンタくらいしか使わないな
977 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 18:32:48 ] aとかbをループ変数にするのはなんかいやだな。
978 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 18:34:57 ] (滅多に使わない)数式の実装ではまんま1文字変数使うこと多い # コメントで参考書名+page 書いとくが
979 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 18:37:50 ] 数式をコメントに入れておくなあ、そういう場合。
980 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 18:40:42 ] >>979 数行オーダーの数式なら、そうするほうが多いけどね。 RGB⇔HSV変換とかの 条件付な式だとコメント書きにくいねぇ (で、リファレンス書いて終了w)
981 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 18:48:04 ] こういうアルゴリズムでーす後はググれって感じでコメント書く。
982 名前:972 mailto:sage [2007/05/15(火) 19:18:53 ] >>973-974 ありがとうございます。 realloc(R[i+1], sizeof(int)*(k+2)); を、 R[i+1] = realloc(R[i+1], sizeof(int)*(k+2)); にしたら無事に動くようになりました。 結果が正しいかはこれから検討する所でありますが。 今回初めてreallocを使ってみたので、本当に間抜けなことをしていました。 重ね重ね、ありがとうございます。 変数についてですが、どうにもうまい名前の付け方が思い付きませんorz。 他の方のソースを読んで勉強していくしかないのでしょうか?
983 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 19:24:18 ] >>982 変数名を思いつけないと言うことは、書いているものが理解できていないか説明できないかのどちらかだろう。 前者は問題外だが、後者も社会人として必要な能力だ。「相手に伝える」ことを念頭に入れて、 変数の説明をする積もりで名前をつけてみるといい。
984 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 19:35:27 ] 例えばこんな感じですね int i int love, you
985 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 19:39:59 ] >>984 あーそれは、愛のあるいい変数名だね。 って、違うでしょ。
986 名前:972 mailto:sage [2007/05/15(火) 19:42:35 ] >>983 「相手に伝える」ですか。心がけてみます。 どうもありがとうございます。
987 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 19:52:03 ] 変数名なんて、それが何を入れとくための奴なのか分かるんならなんでもいいよ
988 名前:デフォルトの名無しさん [2007/05/15(火) 19:58:41 ] VisualC++.NETならばC言語で.NETを使えますか?
989 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 20:11:54 ] いいえ。 VS2003ならMC++, VS2005ならC++/CLIでのみ.NETを使えます。
990 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 20:12:27 ] いいえ、専用に構文が拡張されたC++になります。
991 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 20:17:00 ] 自前でホスティングすれば使えなくもないだろう。
992 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 20:28:25 ] // 次スレテンプレ C言語の入門者向け解説スレです。 ・C++言語はスレ違いです。 ・分からない事をなるべく詳しく書いて下さい。 ・ソースコードを晒すと答えやすくなるかもしれません。 ・質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。 前スレ C言語なら俺に聞け(入門篇) Part 12 pc11.2ch.net/test/read.cgi/tech/1178620766/ 過去スレ Part 1 ttp://pc8.2ch.net/test/read.cgi/tech/1146700389/ Part 2 ttp://pc8.2ch.net/test/read.cgi/tech/1153818463/ Part 3 ttp://pc8.2ch.net/test/read.cgi/tech/1160682950/ Part 4 ttp://pc8.2ch.net/test/read.cgi/tech/1162999861/ Part 5 ttp://pc8.2ch.net/test/read.cgi/tech/1165022193/ Part 6 ttp://pc10.2ch.net/test/read.cgi/tech/1167325490/ Part 7 ttp://pc10.2ch.net/test/read.cgi/tech/1170064980/ Part 8 ttp://pc11.2ch.net/test/read.cgi/tech/1171946674/ Part 9 ttp://pc11.2ch.net/test/read.cgi/tech/1173284217/ Part 10 ttp://pc11.2ch.net/test/read.cgi/tech/1174290325/ Part 11 ttp://pc11.2ch.net/test/read.cgi/tech/1176800483/
993 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 20:29:05 ] 関連スレ C/C++の宿題を片付けます 86代目 pc11.2ch.net/test/read.cgi/tech/1165718021/ くだすれC言語(初心者用) Part.2 pc11.2ch.net/test/read.cgi/tech/1172099763/ スレを勃てるまでもないC/C++の質問はここで 2 pc11.2ch.net/test/read.cgi/tech/1178503366/ はきだめC/C++下級者の質問箱 2 pc11.2ch.net/test/read.cgi/tech/1156206091/ 関連リンク C 関数検索 man on WWW www.linux.or.jp/JM/ 初心者のためのポイント学習C言語 www9.plala.or.jp/sgwr-t/ // ここまでテンプレ
994 名前:気まぐれアナスイ mailto:お腹いっぱい@気まぐれアナスイ [2007/05/15(火) 20:32:34 ] 984 differ:char 5,6,7,8,9 line 4 !(Φ_Φ+){level}
995 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 20:33:11 ] Cスレ乱立しすぎ こっちへ吸収されていいと思う 【初心者歓迎】C/C++室 Ver.37【環境依存OK】 pc11.2ch.net/test/read.cgi/tech/1178432985/l50 くだすれC言語(初心者用) Part.2 pc11.2ch.net/test/read.cgi/tech/1172099763/l50
996 名前:気まぐれアナスイ mailto:お腹いっぱい@気まぐれアナスイ [2007/05/15(火) 21:57:37 ] 吸収も良いですが? スレを、そちらに変更?
997 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 22:13:54 ] 実行の様子をテキストファイルとして作成する方法を知りたいのですが、windowsの場合どうすればいいのでしょうか? Linuxなら./program > text.txtとするらしいのですが、windowsの場合がわかりません
998 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 22:15:03 ] >>997 同じ事やってみた?
999 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 22:17:13 ] なぜ試さない?
1000 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 22:17:54 ] 1000ゲット
1001 名前:1001 [Over 1000 Thread] このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。