X



C言語なら俺に聞け 148
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん (アウアウカー Sacf-slpW)
垢版 |
2018/09/19(水) 17:56:50.83ID:XSTNMnDwa
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/

C11
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf

C99
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
http://kikakurui.com/x3/X3010-2003-01.html

C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/

JPCERT C コーディングスタンダード
https://www.jpcert.or.jp/sc-rules/

※前スレ
C言語なら俺に聞け 147
http://mevius.5ch.net/test/read.cgi/tech/1534430162/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
0739デフォルトの名無しさん (ワッチョイ 2e23-nBLa)
垢版 |
2018/10/18(木) 11:44:54.60ID:9LQIedmj0
一周まわって、何かあったらどんどんexitするようにしたよ

メモリリークしてるかも? ⇒ 一応プロセス再起動
処理が滞ってきたかも? ⇒ 一応プロセス再起動

便利なOSを使うようになってからどんどん怠ける一方よ
0744デフォルトの名無しさん (アウアウカー Safb-nHS7)
垢版 |
2018/10/18(木) 14:51:32.83ID:G4vijIF0a
C言語は言語レベルではオブジェクト指向はサポートされていない
0745デフォルトの名無しさん (アウアウカー Safb-nHS7)
垢版 |
2018/10/18(木) 14:54:22.85ID:G4vijIF0a
>>743
しかし身に付いても中々メモリリークのバグはなくならないよな。
やはりその辺が心配なら他の言語使った方が良いと思う。
0746デフォルトの名無しさん (アウアウエー Sae2-Tmzw)
垢版 |
2018/10/18(木) 14:58:25.72ID:daUW8tpUa
クソコードに揉まれてクソコード書きになった人も多いから、クソを体験しろとも言えんな…
長い時間かけてデバッグして身についたもんは確かにあるけど、人生は貴重だからな。
0749デフォルトの名無しさん (アウアウカー Safb-nHS7)
垢版 |
2018/10/18(木) 16:28:17.06ID:hfM3a7YWa
誰もがそう思うのだよ。

しかしこの世は思い通りにはならんのだ。
0759デフォルトの名無しさん (ワッチョイ 7bea-UhuV)
垢版 |
2018/10/18(木) 19:23:14.70ID:Lxt1YLpM0
あと開放された後なのに、そのポインタのデリファレンスしてたり

別スレッドで確保した時、そこに割り当て発生〜別スレッド側の正当な書き込み
→ 不当な側のデリファレンスでブッコワレーターな値 とか
0760デフォルトの名無しさん (アウアウカー Safb-nHS7)
垢版 |
2018/10/18(木) 19:26:42.15ID:9i8IzX+1a
C++だと工夫すればかなり自動化できるんじゃないか?
Cと同じようにも書けるからハマる時はハマるだろうけど。
0762デフォルトの名無しさん (アウアウカー Safb-dUTK)
垢版 |
2018/10/18(木) 19:46:10.54ID:qf9NxgCDa
734 デフォルトの名無しさん (アウアウカー Safb-dUTK)[] 2018/10/18(木) 09:19:15.80 ID:qf9NxgCDa
>>707 に誰も挑戦しねーし。。。

千の位は1000で割れば数が出るし、余りが千の位を引いた数だから、今度は百の位、十の位ってする。
各位の数字に16進数の30(文字コードで数字の0)を足すと文字列の完成。
(Cだと末尾に¥0も必要。“0000”とか文字配列作れば自動で挿入される)

大まかなロジック教えれば書けるだろ。
分かってみれば大した事してないんだよ。
0763デフォルトの名無しさん (アウアウカー Safb-dUTK)
垢版 |
2018/10/18(木) 19:47:20.69ID:qf9NxgCDa
; SAMPLE3 12,15,42
PROG1 START MAIN
MAIN LD GR0,MIN
LAD GR1,0
LOOP CPA GR0,MAX
JPL LOOPEND
ADDA GR1,GR0
ADDA GR0,STEP
JUMP LOOP
LOOPEND ST GR1,SUM
LAD GR2,0
LAD GR0,0
CPA GR1,BMAX,GR2
L1000 JMI L1000END
SUBA GR1,BMAX,GR2
ADDA GR0,STEP
CPA GR1,BMAX,GR2
JUMP L1000
L1000END ADDA GR0,ZERO_S
ST GR0,STR,GR2
ADDA GR2,STEP
LAD GR0,0
CPA GR1,BMAX,GR2
0765デフォルトの名無しさん (アウアウカー Safb-dUTK)
垢版 |
2018/10/18(木) 19:47:29.90ID:qf9NxgCDa
L100 JMI L100END
SUBA GR1,BMAX,GR2
ADDA GR0,STEP
CPA GR1,BMAX,GR2
JUMP L100
L100END ADDA GR0,ZERO_S
ST GR0,STR,GR2
ADDA GR2,STEP
LAD GR0,0
CPA GR1,BMAX,GR2
L10 JMI L10END
SUBA GR1,BMAX,GR2
ADDA GR0,STEP
CPA GR1,BMAX,GR2
JUMP L10
L10END ADDA GR0,ZERO_S
ST GR0,STR,GR2
ADDA GR2,STEP
ADDA GR1,ZERO_S
ST GR1,STR,GR2
OUT STR,LEN
RET
MIN DC 1
MAX DC 140
STEP DC 1
SUM DS 1
BMAX DC 1000,100,10
ZERO_S DC #0300
STR DS 4
LEN DC 4
END
0767デフォルトの名無しさん (アウアウカー Safb-dUTK)
垢版 |
2018/10/18(木) 19:49:54.55ID:qf9NxgCDa
まあ、CASL2のコード載せたからって書くやつが現れるなんて思ってないが。。。
本っ当にお前ら終わってるな。

プログラマーになり損なった俺より、なお悪いわ。
0769デフォルトの名無しさん (アウアウカー Safb-nHS7)
垢版 |
2018/10/18(木) 20:01:35.14ID:9i8IzX+1a
>>764
malloc()等でメモリ確保してfree()しなければメモリリークになる。
その他strdup()のように内部でmalloc()を使っているやつは同様。
0771デフォルトの名無しさん (アウアウカー Safb-nHS7)
垢版 |
2018/10/18(木) 20:12:08.73ID:9i8IzX+1a
>>770
何をするとリークするかを書いただけだが?
0775デフォルトの名無しさん (ブーイモ MM17-SAcu)
垢版 |
2018/10/18(木) 20:58:01.13ID:KO6AKpPQM
たったこれだけでリークするコードを仕込んだことになる。
もちろん仕様書通りの動作だけど、ノウハウ集を見るまえに気づくのはわりと難しいかもね。

p = realloc(p, 1 * sizeof(int));
0776デフォルトの名無しさん (ワッチョイ 269f-eYdq)
垢版 |
2018/10/18(木) 21:06:20.49ID:CSkK3ONp0
>>772
しかし君はアホだから丁度マッチした適切なレスではないかな。
0778デフォルトの名無しさん (ワッチョイ 269f-eYdq)
垢版 |
2018/10/18(木) 21:08:03.73ID:CSkK3ONp0
>>775
それでリークするかどうかはその他の部分がどう書かれているかによるのでは?
0780デフォルトの名無しさん (ワッチョイ 269f-eYdq)
垢版 |
2018/10/18(木) 21:10:01.05ID:CSkK3ONp0
ああ。失敗した時か。確かにリークするな。
そういう時はもう処理続行不能って事にしてexit()させてる。
0785デフォルトの名無しさん (ワッチョイ c34f-tM5n)
垢版 |
2018/10/18(木) 22:29:32.46ID:+6TFZypL0
>>715
俺は書かないと言ったろ。理由は>>705参照。
そして俺は最初に解法も示してる。>>690参照。

つっても理解出来てないようだから、もう少し(非技術的な)解説をしよう。
現状、俺以外の他全員誰も褒めてないんだから、この際理由を『詳しくない』俺にわざわざ求める必要がないだろ。
しかし、何故か俺に意見を書かせようとする輩が多いだろ。お前も含めて。
それがアフィカスじみてて、結果的にスレを潰すから、俺はそれには乗らない、と言ってるんだよ。
見れば分かるとおり、スレの流れが異常だろ。

俺が何度もこのメタ議論を出している理由は、お前らゆとりが全くこの辺について無知だからだ。
お前らゆとりは、オンラインコミュニティは潰していいものだと思っている。
見方が本当に刹那的で、自分の質問に対しての答えが得られれば後はどうなってもいいと思っている。
(ただ乗り出来るし、勝手に発生するものだと思っている)
実際は、オンラインコミュニティだって、成熟するには時間も労力もかかる。
そこがどんなに(お前にとって)糞であれ、住めば都だから住人が居るわけで、そんなに簡単に潰していいものではないんだ。

ゆとりが老害老害と連呼しながらも2chにへばりついているのも、ちょっと考えればおかしいと気づけるだろ。
2chは古いし、年齢層は高い。これは事実で、実際、老害年齢層の存在確率は他のコミュニティよりも高い。
しかし、結局の所、ゆとり流では「既読疲れ」みたいなコミュニティしか形成出来なかったんだよ。これも事実だ。
だからお前らがここに文句を言いつつもへばりついているわけでさ。

それなのに、ゆとり流をここに持ち込もう、というのは全くの筋違いだ。それは2chを破壊するから止めろと言っている。
ゆとりには長期的な視野がない。2chに色々問題があるのも事実だけど、ゆとりに長期的視野と運営能力があれば、
今現在の20代は全員ゆとりなんだし、人数は揃っているのだから、
「ゆとりチャンネル」(通称ゆとりちゃん)が出来ても全くおかしくない状況だろ。
それが出来ないって事は、お前らゆとりにもかなり問題がある、ってことでさ。それは自覚した方がいい。
0786デフォルトの名無しさん (ワッチョイ c34f-tM5n)
垢版 |
2018/10/18(木) 22:29:49.28ID:+6TFZypL0
とはいえ、2chの問題点が目に付くのは理解出来る。
ただ、それに関して「何故そうなっているのかを理解出来ないのに文句を言っている」のが、
全く使えない意識高い系新入社員と同じ事になってる事にも気づいた方がいい。
お前らは完全に空回りしているんだよ。

ハロワも同じだろ。「何故世界中の誰も20年間それを修正しなかったのか」を理解出来ない癖に、
「俺のハロワ、凄いだろ」なんて言っちゃう辺りが痛い。
ただ、それは若さの特権だから、本当にそう思うのなら主張すればいいし、
ゴミなのを誰も褒めないんだから、ここのコミュニティもまだ正常、ってわけだ。

それで、話を戻すと、ゆとり流の無知と横暴は2chを潰すから止めろ、と言っている。
とはいえ、おそらくゆとりには悪気はない。これが話が通じない根本の原因だ。
しかし、2chにはゆとりを排除するシステム自体がなく、へばりつかれたらどうしようもない。
だから俺はゆとりを教育してやろうとしているわけでさ。2chに合う奴だけが2chに来ればいいのであってね。

笑顔で人を殺しても、殺人は殺人なんだよ。ゆとりはこれを理解出来てない。
同様に、どんなに上手に敬語を使っても、スレを毀損しているようでは駄目なんだよ。
ゆとりは乗っ取り行為が酷すぎる。しかもそれを自覚出来てないのが最悪。
0791デフォルトの名無しさん (ワッチョイ f380-tM5n)
垢版 |
2018/10/18(木) 23:16:58.79ID:THsg9J3q0
ハロワいけ
ハロワ
0792デフォルトの名無しさん (ワッチョイ c34f-tM5n)
垢版 |
2018/10/18(木) 23:27:27.31ID:+6TFZypL0
>>790
効果はあるんだよ。だから書いてる。
正確に言えば、効果がある奴には効果がある、だが。

はっきり言えば、君の考え方もズレてるんだよ。
コミュニティは、オンラインであれオフラインであれ、存続する為には新人を受け入れるしかないんだよ。
だから、ゆとり世代以降を全員閉め出す、というのもまた間違いだし、
後10-15年後にはゆとりが社会の主力になるんだから、
それまでに駄目なところを鍛え直すのは上の世代の責任でもあるんだよ。
(君の考えに関係なく、俺達はゆとり世代に未来を託すしかない)

だから俺は俺なりの方法でやってる。それで成果も多少は出てる。
お前は何もしようともしてないのに文句だけ言ってるクズだよ。
ネットだから何をやってもいい、ではないんだよ。
同様に、ネットだから何もやらなくてもいい、でもない。
ネットだから咎めようがない、でもない。
まあ君には通じないとも思うけど。
0793デフォルトの名無しさん (ワッチョイ be81-xJah)
垢版 |
2018/10/18(木) 23:31:27.22ID:tgytymo80
有益なことなら読んでいるが
長い文章書かれても、大概の奴は読まないだろ
読まれれば効果が有るかもしれないが、
読み飛ばされても文句は言えない事は理解しないと
0794デフォルトの名無しさん (ワッチョイ c34f-tM5n)
垢版 |
2018/10/18(木) 23:55:16.65ID:+6TFZypL0
>>793
> 読み飛ばされても文句は言えない事は理解しないと
理解してるぞ。というか、当たり前だろ。お前はアホなのか?

まあお前も理解出来てないのだろうが、なんだかんだでみんな読んでるんだよ。
そのうち分かるようになるよ。
それ以前に、2chの『長文』ごときで無理な奴はプログラマは無理だし。
0795デフォルトの名無しさん (ワッチョイ 6a9f-zKqf)
垢版 |
2018/10/18(木) 23:56:44.20ID:Mibooz+L0
たまに上から目線で長文書くバカいるけど誰も読まないんだよな
何故かって冗長なだけで大した事書いてないから
0797デフォルトの名無しさん (ワッチョイ c34f-tM5n)
垢版 |
2018/10/19(金) 00:10:02.34ID:Av8doxl90
>>795
そういうことにしたいのはお前が馬鹿だから。
実際は、賢い奴ほど読んでる。
正確には、賢くなる過程で大量のドキュメントを読む必要があり、結果、
賢くなった奴はおしなべて読む速度が速く、読むことに関してコストがかからないからだが。
そして、俺の意図は馬鹿にはどうせ伝わらないから、俺もそれでいいんだよ。
長文ガー、なんて奴は最初から相手にしてない。

三行で、一行で、というのもまた自由だが、
現代プログラマにドキュメントの読み込み能力がかなり必要なのも事実だし、
これは今後さらに拍車がかるのも目に見えているから、
2chの長文に手こずる程度ならマジで国語からやり直した方がいいぞ。
0798デフォルトの名無しさん (アウアウウー Sa9f-Pb4j)
垢版 |
2018/10/19(金) 00:20:52.79ID:e4N83vJpa
>>797
国語の能力に関係なく、攻撃的で、感情的で、実のない部分の比率が高い文章は誰にとっても読みにくいと思うぞ。
汚いコードを読みなれてそういうのを読むのが上手くなったからって、自分のアウトプットするコードは論理的かつ明瞭でキレイでありたいと思わない?
0799デフォルトの名無しさん (ワッチョイ c34f-tM5n)
垢版 |
2018/10/19(金) 00:31:51.38ID:Av8doxl90
>>798
何が言いたいのか分からん。
その君の文章が「論理的かつ明瞭でキレイ」だとでも思っているのか?

俺は俺なりの方法で対処してる。
読むかどうかは当然読み手側が決める。それでいいという前提で書いている。
君がもっと上手く対処出来るというのなら、君がやればいいだけ。
おかしな流れにならなければ、俺がわざわざ時間をかけて長文を投下することもない。
だから、君が見事に、アホ共を捌き、流れが正常化していれば、俺が出張ることもない。
君が俺にこの手の文を投下させたくないのなら、君が実力を見せればいいだけだ。

やってから言えよ。
0801デフォルトの名無しさん (ワッチョイ 6a9f-zKqf)
垢版 |
2018/10/19(金) 01:25:19.25ID:U7ZV6G1w0
5ちゃんで上から目線で長文書く奴の特徴は驚く程共通してるんだよな
例外無く論理的思考が欠如しているから要点をまとめる事も出来ないんだよ
0802デフォルトの名無しさん (ワッチョイ c34f-tM5n)
垢版 |
2018/10/19(金) 02:00:24.64ID:Av8doxl90
>>801
馬鹿こそそういうことにしたがるのだが、
実際、必要な文章量は、認識/知識のギャップに比例するんだよ。

実例を挙げると、>>653,679、ゴミだね、でしかない。
賢い(知識のある)奴にはこれで十分だし、
無理な奴にはグダグダ説明が必要なだけ。

そして俺はお前らがこの件(メタ議論)については無知だと見てグダグダ説明してるだけ。
そもそもお前らが賢ければこんな事にはならないし。


ただ、そういう、「この場合にはこれ」みたいな定型的な屁理屈返しはマジでゆとりに多い。
そういうのも止めた方がいいと思うぞ。誰の為にもならない。
俺も、何度もその返しは見てきた。
それで、誰も俺みたいな返しをしてこなかったから、
お前らゆとりが調子こいて「これは使える」と勘違いしているのだろうけど、
それは単に見捨てられてるだけだぞ。理解出来てないのだろうが。
0803 ◆QZaw55cn4c (ワッチョイ 8a60-oeap)
垢版 |
2018/10/19(金) 07:03:22.13ID:akKjNeBd0
>>799
>>798
>その君の文章が「論理的かつ明瞭でキレイ」だとでも思っているのか?

個人的には >>798 は読みやすいんだが、ID:Av8doxl90 は非常に読みにくい
たとえば >>797 は文脈・論理の線が、不適切な日本語を使用しているせいで滅茶苦茶だ

>>797
>実際は、賢い奴ほど読んでる。…@

>正確には、〜コストがかからないからだが。…A

この「正確には」が、読み手を混乱させるミスリード語。
「正確には」と書く以上、すでに述べた@と同格言い直し内容の後続があるかと期待すると、裏切られて、@の理由を示すAが来る。

>そして、〜伝わらないから、俺もそれでいいんだよ。

「そして」が意味不明、何と何が「そして」で続くのかさっぱりわからない。
「そして」を使うのなら、
「俺の文が、馬鹿には読むコストのかかる文章であったとしても」→「馬鹿にはどうせ俺の意図伝わらないから」→「俺はそれでもいい」…B
と、A部分のキーワード「コスト」という単語を使うことによって、AとBが意味の上でつながっていることを明示するべきだ
Bの冒頭を省くから「そして」が宙に浮く

>>799
>おかしな流れにならなければ、俺がわざわざ時間をかけて長文を投下することもない。
上で示したように、君の文章は「おかしな流れ」そのものといっていい
スレが「おかしな流れ」であるとき、それを正すのに「おかしな流れ」の文章が使えるとでも思っているのか?
0804 ◆QZaw55cn4c (ワッチョイ 8a60-oeap)
垢版 |
2018/10/19(金) 07:17:05.03ID:akKjNeBd0
>>801
>上から目線で長文書く奴の特徴
>論理的思考が欠如している

感情にまかせて思いついた単語を羅列するあまり、
前半と後半の意味の整合性がとれていなかったり、前半と後半をつなぐ接続詞が不適切であったり、で、
はっきりいって脈絡がない

書いている本人はテンポ良く文章を量産できる「頭のいい自分」に酔いしれているのだろうが、
実際には量産されているのはポンコツ文
0805デフォルトの名無しさん (アウアウウー Sa9f-BMDm)
垢版 |
2018/10/19(金) 10:18:49.82ID:gPrGaWTXa
長文をゆっくり書いていられるゆとりのある人はいいなあ
0806デフォルトの名無しさん (アウアウカー Safb-dUTK)
垢版 |
2018/10/19(金) 10:20:47.68ID:SjrnPnkZa
ポンコツかどうかはコード書かせれば分かるだろ。
この世界では他がポンコツでもコードが書ければ正義だ。
0809デフォルトの名無しさん (JP 0H1b-87xj)
垢版 |
2018/10/19(金) 13:27:43.51ID:F6BbYzOIH
>>807
hello worldの存在意義は、
その言語に初めて触れる人に、
言語の規格にきちんと準拠して、
最小限の記述で、
きちんと動作する、
何かのプログラムを見せることだよ。
どんな設計スタイルがいいとか教えることじゃない。
0812デフォルトの名無しさん (アウアウウー Sa9f-BMDm)
垢版 |
2018/10/19(金) 14:33:09.80ID:gPrGaWTXa
カーニハンそんなことやってたっけ?
0813デフォルトの名無しさん (アウアウカー Safb-dUTK)
垢版 |
2018/10/19(金) 15:14:02.97ID:SjrnPnkZa
>>808
設計通りに書けない奴はコードが書ける奴とは言わんだろ。
0814デフォルトの名無しさん (アウアウカー Safb-dUTK)
垢版 |
2018/10/19(金) 15:21:55.54ID:SjrnPnkZa
>>809-810
どっちも正しい。

>>811
GBAハックした時は点を一個表示するのが最初だった。
Hello Worldは二番目。
0816デフォルトの名無しさん (アウアウウー Sa9f-BMDm)
垢版 |
2018/10/19(金) 17:14:10.33ID:gPrGaWTXa
Linuxというかglibcならmanページに書いてあるよ。
0817デフォルトの名無しさん (ワッチョイ f380-tM5n)
垢版 |
2018/10/19(金) 22:42:18.68ID:zxKaiBZl0
make worldでX立ち上がったときは
感動したものだ
0820デフォルトの名無しさん (ワッチョイ be81-xJah)
垢版 |
2018/10/20(土) 01:37:49.13ID:/s/GXT/Q0
それで思い出した
プロジェクトでのmakefile、作成が終わった時に
バナー文字で「make end!」って表示するんだけど
ある人のだけは「big cock!」に書き換えてたっけ

ここには関係者いないよね?
0821デフォルトの名無しさん (アウアウカー Safb-dUTK)
垢版 |
2018/10/20(土) 15:49:24.33ID:Nttc2RvPa
C言語だから、次世代言語(w)よりもコード出るかと思ったら、出ないのな。
0828デフォルトの名無しさん (ワッチョイ 3bb3-xBTp)
垢版 |
2018/10/21(日) 22:17:56.29ID:+iExR7UM0
Cでfloat型が表す最小の正の数値を求めるプログラム書いてて、
とりあえず1.175494e-38に近づけるように書いてみてるんだが
printfで値表示させながらやってみると1.175494e-38以下も表示されるのなんで?
環境はgcc5.5.0_1

とりあえず最小判定は初期値1.2e-38を0.000001e-38ずつ減らしていって、
1.175494e-38を抜けるとバカな数字が出てくると仮定してif(a / (b - c) != 1)で判定してる

int main(){
float a = 1.2e-38, b;
float c = 0.000001e-38;

while(1){
b = a;
a -= c;
printf("a=%.6e b=%.6e\n", a, b);
if(a < 0 || b < 0) break;
if((a / (b - c) != 1.0)) break;
}

printf("a=%.8e b=%.8e\n", a, b);
if(b < 1.175494e-38) printf("b is not min value\n");
}
0834デフォルトの名無しさん (ワッチョイ 3bb3-FQxm)
垢版 |
2018/10/22(月) 01:30:41.57ID:eGJ65JSF0
>>833
int型だとオーバーフローすると馬鹿な数字がでてくるからそう仮定したんだが違うのか
率直に聞くんだけど、この場合どうすればいいの?
0835デフォルトの名無しさん (ワッチョイ 8af9-L5c9)
垢版 |
2018/10/22(月) 01:41:56.82ID:ao50gEDc0
>>834
バカな数字とかいい加減な理解をしないで、ちゃんとした仕様を調べてみなよ。例えばwikipedia辺りで算術オーバーフローの項目見て全部読んで、分からない語とか関連する語もちゃんと調べるとか。
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況