C言語マジわかんないよぉー!

このエントリーをはてなブックマークに追加
802ほんたま
>>787
にーよ、そのソースは使えんぞ!わかるか?
にーよ、int a[100];
と配列の要素数を100までしか宣言してないのに、
for(i=100; i<200; i++) {
a[j]=i;
}
はないぞ。わかるか?
つまり配列外の未定義の領域に不正に代入したことになり、プログラムは強制終了するぞ。
にーよ、おりはコンパイラそのものをつくって公開している2ch唯一の神だ♪何でも聞け!!
803仕様書無しさん:04/12/08 21:19:52
もういいじゃん、文系、理系関係、数学好き・嫌いとか関係ないって。
それより、単位欲しくて教えて君なんだろ、ほっとけって。
お金欲しくて教えて君も、ほっとけ。
804ほんたま:04/12/08 21:23:32
>>787
にーよ、そのソースは使えんぞ!わかるか?
にーよ、int a[100];
と配列の要素数を100までしか宣言してないのに、
for(i=100; i<200; i++) {
a[j]=i;
}
はないぞ。わかるか?
つまり配列外の未定義の領域に不正に代入したことになり、プログラムは強制終了するぞ。
にーよ、おりはコンパイラそのものをつくって公開している2ch唯一の神だ♪何でも聞け!!
805790:04/12/08 21:24:25
>>802
お前もバカ学生と同列か。
コピペしてコンパイラに食わせてみろ、低能。
806仕様書無しさん:04/12/08 21:27:16
>>804
釣りだ、釣りだ!すごい大胆だ!これなら、釣られても良いかなぁ、なんて思った漏れはバカだ!
807仕様書無しさん:04/12/08 21:33:15
メモリの構造が分からないバカはVBでもやってて下さい
808ほんたま:04/12/08 21:33:46
>>805
ハゲ!!
こんなものコンパイラに食わせなくても見た瞬間にわかるわい!!
いいか、にーよ、正確には、
int a[100];
int i;
int j = 0;
と宣言しているから、
for(i=100; i<200; i++) {
a[j]=i;
}
ループの中で、a[100]となったとき、iの値100は、
int a[100];の後の、
int iに代入され、
a[101]となったとき、iの値101は、
さらにその後の、
int jに代入されることになるんだよ、ハゲ!!
そして102から、変数はどこにも宣言されてないので、未定義の領域にアクセスしたことになり強制終了するんだよ!!
またint j=0;だが、プログラム中のどこにも使われてないから、エラーは出ないが無駄なコードだぞ。わかるかな?
809仕様書無しさん:04/12/08 21:38:04
もし、たまたまその102以降のデータを格納する部分のメモリがあいてたら?
810仕様書無しさん:04/12/08 21:42:12
配列変数aの添え字に使われてるのはiじゃなくjなんだが。

アイじゃなくジェイなんだが。
811仕様書無しさん:04/12/08 21:42:54
>>808
>またint j=0;だが、プログラム中のどこにも使われてないから、エラーは出ないが無駄なコードだぞ。わかるかな?
あ〜ん、もう、釣らないでぇ(はぁと
812ほんたま:04/12/08 21:45:50
>>809
にーよ、鋭いな!!
にーよ、おりのスリムドカンでコンパイルすればそのエラーは出ないこともあるよ。
というのは、おりのスリムドカンではデータはコードセクションの一番最後の格納され、余った領域は0で埋められるから、その0が並んだ領域に書き込まれる可能性がある。
そうすればエラーは出ないな…だがそれ以外では、実行時エラーとなる。
つーか、Visual C++でコンパイルすれば、これはコンパイル時エラーになるな。
つーか、よく見たら、a[j]=i; の[]中はiではなくjだったのね…
道理でiの左下に変な髭がついてると思った…スマソ
813790:04/12/08 21:47:35
>>810
ああっ、先に書かれた。orz

つーわけだ、大した神様だな、ハゲの沢村よ。w
814仕様書無しさん:04/12/08 21:48:45
スリムドカンってどっかで聴いた事あるなと思ったらダイエット薬品じゃねぇか
815ほんたま:04/12/08 21:49:29
>>813
にーよ、おりは神には間違いないが、最近視力が落ちてきたんだ。
これは神の唯一の弱点といえるな♪
816仕様書無しさん:04/12/08 21:54:10
ハゲなのにかみ様
817仕様書無しさん:04/12/08 21:55:51
warota
818ほんたま:04/12/08 21:56:49
にーらよ、そもそも>>787が、
int a[100];と紛らわしいこと書いてるから、
配列の添え字がiと思っちゃったじゃねーか!!
a[0]とa[1]の2つしか使わねーんなら、
int a[2];でいーじゃねーか、ハゲ!!
おりは神であることには間違いないが視力が悪いんだから、ちゃんと書け!!
にーらよ、これは無駄なコードを書いてはいけないという教訓にするといいぞ♪
にーらよ、為になるかな?どうじ?
819仕様書無しさん:04/12/08 21:59:35

ここまでワロタ
820仕様書無しさん:04/12/08 22:02:38
どっかのスレで「波形がなんとか」とか言って鬼の首取ったみたいに騒いでいた奴がいたよな。
あれ、誰だったっけ?な、ほんたま。

いやぁ、傑作だねぇ、「コンパイラに食わせなくても見た瞬間にわかる」か。w
821仕様書無しさん:04/12/08 22:07:43
>>818
顔真っ赤にして照れ隠ししなくてもいいよ、お坊ちゃん。
俺は無知な厨房を責めたりしないからサ。
822787です ◆DJerZ3PLm6 :04/12/08 22:14:29
厨な787です
一気にスレが伸びてますが、一体なんなんでしょう(謎
ちなみにボクはプログラム歴半年の大学生なので冗談半分で書いたのですが・・・
【int a[100];】 ではなく 【int a[101];】とするべきでしょうか
823787です ◆DJerZ3PLm6 :04/12/08 22:16:01
学校の授業で習ってるレベルなのでまだ入門者です。
824仕様書無しさん:04/12/08 22:16:10
とりあえずありったけ確保しとけば問題なし
825仕様書無しさん:04/12/08 22:20:49
>>787
大学生は大学生らさいくSEXしてなさい
826仕様書無しさん:04/12/08 22:25:57
配列は1つぶん多く確保しとけって言われますが、コンパイルしてもエラーにならないのは何故です?
827仕様書無しさん:04/12/08 22:27:50
コンパイラが低脳だから
828仕様書無しさん:04/12/08 22:27:51
>>723
去年見れなかったので
ありがとう
829仕様書無しさん:04/12/08 22:30:35
>>1-828
   ,へ、        /^i
   | \〉`ヽ-―ー--< 〈\ |
   7   , ''''''、, '''''' 、  ヽ
  /  /  \、i, ,ノ    ヽ  ヽ
  |  ((●)    -(●) )  |      ・・・・・・・・ゴクリ
 / 彡  ノ(、_, )ヽ  ミミ   、
く彡彡  `-=ニ=- ' ミミミ ヽ
 `<    `ニニ´   ミミ彳ヘ
    >       ___/   \
   /         7      \
   |        /


830790:04/12/08 22:34:02
>>823
いや、問題はない。
コードの質はともかく、ちゃんと動作するし、書いたとおりの結果も出力される。
単に馬鹿がバカな勘違いをしたというだけ。

宿題の回答としてなら、普通は

for(i=0;i<100;i++){
 a[i] = i+100;
}

for(i=0;i<100;i++){
 printf("%d\n",a[i]);
 printf("%4d\n",a[i]);
}

として格納と出力を別のループに分けるけどね。
それくらい。

キミなら>>785とか、ほんたまみたいにはならないと思うよ。
がんがれ。
831仕様書無しさん:04/12/08 22:42:09
まぁ、回答は好みの問題もあるからいんだけど、、、
iとjが紛らわしいから、jを使うなとか言われると、
胸くそ悪くなるんだよ、ボケェ!>>818
832790:04/12/08 22:50:37
>>831
あ、たしかに押しつけがましかったかも。申し訳ない。


>iとjが紛らわしいから、jを使うなとか言われると、
>胸くそ悪くなるんだよ、ボケェ!>>818

同感。
特に自分の失敗を誤魔化すための屁理屈だから余計に腹が立つ。
絶対に仕事で組みたくないタイプだよな。
833ほんたま:04/12/08 22:54:03
にーらーーーーーーーーっ、勝ったーーーーーーーーーーーーっ!!!
にーらーーーーーーーーっ、配列の添え字がじぇーでもエラーが出るぞ、ぎゃははは♪
いいか、にーらよ、
ループに入る前j=0;だろ?
すると、
for(i=100; i<200; i++) {
}
ループの中で最初のループが、
a[j]はa[0]、
a[j++]がa[1]になるわけだ。
ではループが最後に達したときはどうなるかな?
iは199までループする。
すると、
a[j]はa[99]のとき、
a[j++]a[100]になるわけだ。
だが、宣言はint a[100];だぞ。
つまりaの添え字はa[99]までしか使えねーんだよ。
わはは、a[100だと不正なアクセスになるじゃねーか!!!
わははははーーーーーーっ、勝ったーーーーーーーーーーーーっ!!!
おりは正しかったーーーーーーーーーーーっ!!!!
やはり神ーーーーーーーーーーーーーーーーーーーーーーーっ!!!わはは♪
834仕様書無しさん:04/12/08 22:58:06
ほんと精神年齢低いんだな、感動した
835仕様書無しさん:04/12/08 23:01:49
>>833
後置記法インクリメント演算子が評価されるのはいつなのかな、神様?
836仕様書無しさん:04/12/08 23:06:15
>>833
恥の上塗り。
837仕様書無しさん:04/12/08 23:06:26
>>833
一つだけ教えてくれ。
お前仕事してるか?してるとしたら、どこに勤めてるんだ?
いやな、お前のとことだけは仕事したくないから、教えて欲しいんだ。
838仕様書無しさん:04/12/08 23:06:29
盛り上がってる?
839仕様書無しさん:04/12/08 23:06:42
得意げな顔して何が、エラー出た、だ。