[過去ログ] C言語なら俺に聞け 163 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
584: (ワッチョイ fa07-cjCd) 01/31(金)11:00 ID:uHjOTXCx0(1) AAS
考えようによっては、タチの悪いDoSじゃないかw
カメラごときで全体落としてんじゃねえよ > カーネル層

ロジックバグなんだろうけど、こういうのはしかし難しいね
585: (ササクッテロラ Sp3b-7ROj) 01/31(金)11:20 ID:h9+hJoTPp(1/2) AAS
ドライバの秘孔を突いただけだから
586: (ワッチョイ 4e63-W7nG) 01/31(金)11:30 ID:4ClqIqkw0(2/2) AAS
ドライバーに致命的不具合があったとしても
ブルスクになる程度で
電源断まで行くと言うのは考え難い
587: (ササクッテロラ Sp3b-7ROj) 01/31(金)11:49 ID:h9+hJoTPp(2/2) AAS
ドライバの秘孔を突いてカメラに搭載のチップが電源ライン直結になったとかじゃね?
588: 01/31(金)18:44 ID:5fFn3R6V0(2/3) AAS
原因はそっち(ドライバ)ではなくスリープなしのループ内でフォントファイルに連続攻撃したことだぜ、たぶん
簡単に書くとこんな感じ

fontpath ='C:\\Windows\\Fonts\\DFJGOTEB.TTC'
while True:
 put_ja(point, text)

def put_ja(point, text):
 font = ImageFont.truetype(fontpath, 32)
省4
589: (ワッチョイ 0e00-BqhG) 01/31(金)19:36 ID:R7Zj8Mog0(1) AAS
プリエンプティブカーネル使っててスリープなしのループごときでそんなことあり得るのか?
逆にそうなった仕組みが知りたい。
590: (ワッチョイ 9a79-x7zn) 01/31(金)19:40 ID:1pwkweKb0(1) AAS
インテルのTurboBoostだかで負荷もブーストされて排熱が間に合わずMBにダメージ与えつつ逝ったんじゃないの
PC買い換えた方がいいよ
591: (ワッチョイ b6fc-jays) 01/31(金)19:54 ID:R/wyJ37S0(1) AAS
ブルースクリーンもなしにおちるなんてハード不良
592: 01/31(金)20:00 ID:5fFn3R6V0(3/3) AAS
スレチで申し訳ないが、

俺も気にはなってるけどPC痛めつけてまでやる気にはなれない
試したいなら試してくれ、ただしどうなっても責任は負わんぞw

MicrosoftストアのPython Software Foundationってとこの奴
Python 3.13.1 (tags/v3.13.1:0671451, Dec 3 2024, 19:06:28) [MSC v.1942 64 bit (AMD64)] on win32

 OpenCVで日本語表示
 外部リンク[html]:monomonotech.jp
省10
593: (アウアウエー Sa52-FFa5) 02/01(土)12:06 ID:Dm0gVBeEa(1) AAS
負荷掛け過ぎてコンデンサが爆発したんだろ
594
(1): cha 警備員[Lv.1][新芽] (ワッチョイ 87bc-UTVl) [chan] 02/09(日)11:28 ID:WswbN0Go0(1/10) AAS
全く関係の無いことですが、ここに書き込まさせてください。
あるサイトの問題集で、巨大な数の足し算を行うのに、整数型使えないから文字型使おうって書いてありました。
どうやったらその発想ができるんですか?
私プログラミング初心者なのですが、、、
595: (ワッチョイ 0f5f-Z3xl) 02/09(日)11:34 ID:sBzel75s0(1/4) AAS
頭の出来だろw
596: 警備員[Lv.2][新芽] (ワッチョイ 87bc-UTVl) [chan] 02/09(日)11:39 ID:WswbN0Go0(2/10) AAS
プログラミングに頭の出来って関係あるんですか?
597: (ワッチョイ 7fab-oD/y) 02/09(日)12:36 ID:G/CYNigQ0(1) AAS
なんで関係ないと思うんだろうか
598: 警備員[Lv.4][新芽] (ワッチョイ 87bc-UTVl) [chanqi] 02/09(日)12:44 ID:WswbN0Go0(3/10) AAS
誰でもプログラミングができるって言っている人がいたので。
599: 警備員[Lv.4][新芽] (ワッチョイ 87bc-UTVl) [chanqi] 02/09(日)12:52 ID:WswbN0Go0(4/10) AAS
条件分岐とかループ処理のやつは解けるやつもあれば、解けないやつがあっても解説見れば次は出来ますが、文字列関係になると頭の中が[?]になるんです。
600: (ササクッテロ Spa3-Z3xl) 02/09(日)13:07 ID:ql26y8Y/p(1) AAS
応用力…今の学校教育じゃ養われない能力が大切
601: 警備員[Lv.5][新芽] (ワッチョイ 87bc-UTVl) [chanqi] 02/09(日)13:16 ID:WswbN0Go0(5/10) AAS
応用力ですか、。なんか、数学と同じ感じですね。基礎ができたと思っても応用ができないみたいな。
ちなみに、応用力ってどの様に勉強すれば身につくものなんですか?
602
(2): (ワッチョイ 1e63-euVe) 02/09(日)13:46 ID:k5BYzD4Y0(1/2) AAS
30桁くらいの2つの整数値を筆算で加算するときの手順をイメージして
それをプログラム化してみれば良い
そんなに難しくはないだろう
603: (ワッチョイ 465c-6Hi7) 02/09(日)13:46 ID:KfUn2qZi0(1/2) AAS
>>594
そのサイトクソだよ
604
(1): 警備員[Lv.6][新芽] (ワッチョイ 87bc-UTVl) [chanqi] 02/09(日)14:22 ID:WswbN0Go0(6/10) AAS
>>602
筆算のイメージはあるのですが、整数型でやろうとしたらエラーになって、実数型でやろうとしてもエラーになるので、なんでだろーって思って解説ん見てみたら、[文字列型にしましょう]って書いてあったので[?]ってなってしまうのです。
605: 警備員[Lv.6][新芽] (ワッチョイ 87bc-UTVl) [chanqi] 02/09(日)14:25 ID:WswbN0Go0(7/10) AAS
>>602
筆算のイメージもそのサイトの解説みてから、そうなんだと思ったんですけど、どうも初見だとイメージが沸かないんですよ。
606
(1): (ワッチョイ 1e63-euVe) 02/09(日)14:27 ID:k5BYzD4Y0(2/2) AAS
イメージ湧かないなら、手を動かそう
そこに答えがあるよ
607: 警備員[Lv.6][新芽] (ワッチョイ 87bc-UTVl) [chanqi] 02/09(日)14:55 ID:WswbN0Go0(8/10) AAS
>>606
なるほど、頭で考えるより、手で考えた方が良いのですか。
実践してみます。ありがとうございます!
608: (ワッチョイ de76-/Fy3) 02/09(日)17:03 ID:TclGPY+C0(1/5) AAS
整数32bitでも64bitでも最大値は決まっている
でも大きい整数を表すのに64bit整数1つだけ使うとは決まっていない

桁溢れをプログラム的に検出して
溢れた分を別の64bit整数に記録すれば大きな整数を扱える
64bit+64bit+....
で整数を表す感じ
609: (ワッチョイ de76-/Fy3) 02/09(日)17:04 ID:TclGPY+C0(2/5) AAS
文字列って1Byte整数の配列でしょ?無駄が多いよ
8Byte整数の組合せを上で挙げたけど、8Byte整数の配列でも当然できる
610
(2): (ワッチョイ 0f5f-Z3xl) 02/09(日)17:14 ID:sBzel75s0(2/4) AAS
無駄を省くより可読性の方が大切
8bit時代のファミコンじゃ無いんだから
そんなキリキリ詰め込んだってわけわからん事になるだけ
611: (ワッチョイ 465c-6Hi7) 02/09(日)17:36 ID:KfUn2qZi0(2/2) AAS
>>610
的外れ
いきるな初心者
612: (ワッチョイ 0f5f-Z3xl) 02/09(日)18:12 ID:sBzel75s0(3/4) AAS
桁上がりを別に判定しなきゃならないんだから扱えるギリギリの桁で計算するのはバカだろw
アセンブラなら桁あふれフラグ見て簡単に処理出来るだろうが、Cだと無理
613: (ブーイモ MMaa-6Hi7) 02/09(日)18:46 ID:fEimQ790M(1/3) AAS
>>604
どこのサイト?
それ書いてるやつ多分バカだぞ
参考にすんな
614: (ブーイモ MMaa-6Hi7) 02/09(日)18:57 ID:fEimQ790M(2/3) AAS
>>610
charでやるのは馬鹿だがアルゴリズムは同じなんだから可読性は変わらない
メモリもほぼ変わらない
615
(1): (ワッチョイ de76-/Fy3) 02/09(日)19:00 ID:TclGPY+C0(3/5) AAS
整数値それぞれ (左右どっちだっけ)シフト1bitやって(1/2の値)足したのが最大値の半分超えたら桁溢れ
上位桁に溢れるだけ加算
Cでもできるに決まっているじゃん これだけだよ
616: (ワッチョイ de76-/Fy3) 02/09(日)19:09 ID:TclGPY+C0(4/5) AAS
文字列って溢れの分が1-9まであって大変そう
バイナリなら1bitだけでしょ
617: 警備員[Lv.8][新芽] (ワッチョイ 87bc-UTVl) [chanqi] 02/09(日)19:15 ID:WswbN0Go0(9/10) AAS
>>615
それってシフト演算の話ですか?(違ってたらごめんなさい。)
私、シフト演算は苦手なんですよね。
ただシフトするだけなら参考書とサイトみたらできますけど、ノールックでさらに四則演算になるとできないんですよ。
618
(2): (ワッチョイ de76-/Fy3) 02/09(日)19:34 ID:TclGPY+C0(5/5) AAS
考えたらシフトは無駄だった
64bit整数のうち63bit整数で考えて最上位ビットを溢れ判定に使えばよいだけ
あんまり書くと宿題の手伝いになってそう
619: (ブーイモ MMaa-6Hi7) 02/09(日)19:44 ID:fEimQ790M(3/3) AAS
>>618
足したあとの結果から判定する
教えるなら定石を教えろや
620: はちみつ餃子◆8X2XSCHEME (ワッチョイ ff32-DO7v) 02/09(日)19:51 ID:vUYqd53r0(1) AAS
二進化十進はたとえば表示の処理なんかは簡単になるので無駄なわけではない。
621: (ワッチョイ 0f5f-Z3xl) 02/09(日)20:03 ID:sBzel75s0(4/4) AAS
いまどき文字も16bit時代にケチケチすんなw
622: 警備員[Lv.8][新芽] (ワッチョイ 87bc-UTVl) [chanqi] 02/09(日)22:27 ID:WswbN0Go0(10/10) AAS
>>618
なるほどですね。因みにこれは宿題ではなく、自主学習のやつです。とあるサイトの解説がよくわからなくてこの板の方々に質問させていただきました。
ありがとうございます。
623
(1): (ワッチョイ de76-/Fy3) 02/10(月)07:27 ID:ZpC+jsE10(1) AAS
あと実数でやったと出たけど要注意
double verybignum;
verybignum += 1.0;
で1.0は桁を合わせると0に消えて足されない場合がある
624: (アウアウエー Sa82-R6kM) 02/10(月)11:48 ID:Z13/KCo3a(1) AAS
吊りならともかく本物の初心者なら文字コードを知らないってこともあるだろうな
多倍長整数をバイト列(1桁0-255)じゃなくて文字列(1桁0-9)で表すのは無駄が多いがアルゴリズムは同じはず
それでもピンと来ないなら先に文字コードについて理解するべき
625: 警備員[Lv.2][新芽] (ワッチョイ 278e-tGgj) 02/10(月)13:13 ID:BwJhqJpr0(1) AAS
IntelのアセンブラならBCDを扱う命令があったと思うけど、Cでやるなら文字に代入する時点で &= 0x0F、計算して出力する前に |= 0x30(でいいんだっけ?)かなー
626
(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ ff32-XAIF) 02/10(月)13:19 ID:cWC6BpGk0(1/3) AAS
やや強引だがアドレスとして同じでも比較すると等しくないという結果になる例を作ってみた。
外部リンク:wandbox.org
概念的にはポインタはアドレスというのでも間違いではないけど実際には言語のルールを把握していないと引っかかることもある。

ホスト規制でしばらく書き込めなかったので遅レスですまぬ。
627
(4): (ワッチョイ 6a56-WFrT) 02/10(月)16:46 ID:xKid5uSQ0(1) AAS
よく分からないがこうなる理由が分からないという意味の質問かな?
まあそうだとして、C言語では異なるオブジェクトへのポインタを比較出来ないってルールがある
それが行われているので、未定義の動作といってこのプログラムではコンパイラがどんな事をしてもいいことになってる
そのどんな事の中にはnot equalを表示するという動作も含まれているので、たまたまそうなったんでしょう
初心者がよくやるFAQレベルのミスなので、ポインタとオブジェクトを理解する意味でその辺も読んでみればもっと上達するでしょう
他にもヘンな部分があるので色々他の人のコードとかも読むといいね
628
(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ ff32-DO7v) 02/10(月)17:14 ID:cWC6BpGk0(2/3) AAS
>>627
ポインタにはアドレスが入ってるだけという話題が出てたからそんなことはないという注意喚起。
629: はちみつ餃子◆8X2XSCHEME (ワッチョイ ff32-DO7v) 02/10(月)17:18 ID:cWC6BpGk0(3/3) AAS
>>623
文意がよくわからんが初期化されてないから不定値になってるんじゃない?
630: 02/10(月)17:44 ID:1DQgWNxh0(1) AAS
>>627
> よく分からないがこうなる理由が分からないという意味の質問かな?
このスレは初めてか?
はちみつさんがそんな質問するわけないだろ
631
(1): 警備員[Lv.5][新芽] (ワッチョイ 8713-tGgj) 02/11(火)00:58 ID:nkHTE6y60(1/2) AAS
これはどういうことなんだ?
foo、barの順にスタックに積まれる
bazにはfooの次の(intの境界の)番地(barと同じ)が入り、quzにはbarの番地が入る
bazとquzには同じ番地(値)が入っている
までは分かる
bazもquzもint型を指している
が、bazとquzの内容を比較するとことなる
省2
632
(1): 警備員[Lv.5][新芽] (ワッチョイ 8713-tGgj) 02/11(火)01:04 ID:nkHTE6y60(2/2) AAS
>>627がいうことがそれなのか
未定義だと
アセンブラ脳だと同じとみなしてくれてよさそうだけど、難しいね…
633: (ササクッテロラ Spa3-Z3xl) 02/11(火)08:30 ID:YWsMUNTvp(1) AAS
型変換すればOK
634
(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ ff32-DO7v) 02/11(火)11:05 ID:0+q77CUl0(1/2) AAS
>>632
強調しておくけど未定義は何が起こってもよい。
この場合は一応は式が式として評価されたかのように動作してるので比較的マシな部類で、未定義を踏んでいる箇所とは遠く離れた箇所で意味不明の動作が起こることもある。(起こってもよい。)
低レイヤから入った人は未定義をナメてることが結構あるとは思う。
どのような機械語にコンパイルされるか想像できる (と本人は思っている) 故の弊害だなぁ。
635: (ササクッテロラ Spa3-Z3xl) 02/11(火)11:22 ID:kmJe274sp(1) AAS
Cなんてポインターは全部void*だろ
636: (ワッチョイ 1e63-euVe) 02/11(火)11:37 ID:7Jzkf7ZG0(1/2) AAS
ご無体な
637: 警備員[Lv.6][新芽] (ワッチョイ 46ac-tGgj) 02/11(火)12:35 ID:m4FoXgHJ0(1/2) AAS
>>626 は僕のgccのパージョンだと
-O2 ありだと "not equal"
最適化なしだと "equal"

-S つけて .s をみると、-O2 ありのときポインタの比較すらせず単純に
puts("not equal");
とするコードを出力していた
"equal" のリテラルすらコードにはない
省1
638: (ワッチョイ 4606-6Hi7) 02/11(火)13:33 ID:jMpjlVqA0(1/4) AAS
strict aliasingのルールがなぜあるか理解してたらある程度予想つくだろ
639
(2): (ワッチョイ de76-/Fy3) 02/11(火)14:32 ID:VhWouMxY0(1/2) AAS
そもそも 8Byteや4Byte変数のポインタが例えば奇数の数値が許されるのかとか
640
(1): (ワッチョイ 1e63-euVe) 02/11(火)14:40 ID:7Jzkf7ZG0(2/2) AAS
文字列を指すポインタなら、一文字ずつインクリメント出来ないと困るよね
641: (ササクッテロラ Spa3-Z3xl) 02/11(火)14:52 ID:+ybAiMfGp(1) AAS
>>639
CPUによる
642: (ワッチョイ 4606-6Hi7) 02/11(火)15:43 ID:jMpjlVqA0(2/4) AAS
>>639
それどこへのレス?
643: (ラクッペペ MMc6-2Ktg) 02/11(火)16:44 ID:ZUCQJ4rmM(1) AAS
>>640
いつ困るんだ?
644
(1): 警備員[Lv.3][新芽] (ワッチョイ 1ac9-tGgj) 02/11(火)16:59 ID:MJELNENN0(1) AAS
>>627
最適化されると出力されるコードを推測することは無理だ、ということね
645: (ワッチョイ 4606-6Hi7) 02/11(火)17:19 ID:jMpjlVqA0(3/4) AAS
無理はいいすぎ
やったことないやつがしったかすんな
646: (ササクッテロラ Spa3-Z3xl) 02/11(火)17:20 ID:0gFNLz1yp(1) AAS
ARM系はほんと無理
647: (ワッチョイ 5302-aFRq) 02/11(火)18:37 ID:2gjYX+K80(1) AAS
貴方みたいな人はほんと無理
とか言われたら傷ついちゃう
648
(4): (ワッチョイ 7f1b-hc6T) 02/11(火)21:27 ID:JzAdQ4dR0(1) AAS
とりあえず読むべし
旧石器時代のポインタをご利用の皆様へ 〜provenance入門〜
外部リンク:qiita.com
649: 警備員[Lv.5][新芽] (ワッチョイ 465f-tGgj) 02/11(火)21:52 ID:m4FoXgHJ0(2/2) AAS
>>648
thx!
650
(1): (ワッチョイ de76-/Fy3) 02/11(火)21:58 ID:VhWouMxY0(2/2) AAS
こんなの分割コンパイルしたら分からないし ライブラリならなおさら
実行時にどのオブジェクト由来なんて情報持っておけるのか?

int func(int *ip, int *iq)
{
if (ip == iq) {
} else {
}
省1
651: (ワッチョイ 46a9-6Hi7) 02/11(火)22:39 ID:jMpjlVqA0(4/4) AAS
コンパイル時に決まってんじゃん
652: (スップ Sd4a-26Jk) 02/11(火)23:02 ID:DgpMDse2d(1) AAS
このコテハンの人いつもこんなだよね
まともに出来るのが規格のコピペみたいな事だけで、それ以外だとすぐとんちんかんな事言い出して突っ込まれてる
653: はちみつ餃子◆8X2XSCHEME (ワッチョイ ff32-DO7v) 02/11(火)23:17 ID:0+q77CUl0(2/2) AAS
>>650
わかる範囲でやるってだけ。
わからないところは保守的なコードを生成する。
ただ、今は LTO があるのでわかる範囲がだいぶん広い。

わからないからこそプログラマは未定義なことをしないと仮定した最適化をする (未定義を踏んでたらむちゃくちゃになる) という場合もある。
654: (ワッチョイ d301-XAIF) 02/12(水)10:25 ID:WVzDbo940(1/2) AAS
>>648
ポインタpとqの値が同じにならないんだけど…
655: (ササクッテロラ Spa3-Z3xl) 02/12(水)10:28 ID:p1VJlK94p(1) AAS
Cに余計なもん付けたらいにしえのLinux由来のコードが通らなくなるだろ
656: (ワッチョイ 6a4d-WFrT) 02/12(水)11:20 ID:OojhOsKe0(1/3) AAS
未定義の動作がどういうことなのかよく分かっていない人がいるみたいなので補足しておく

>>628
未定義の動作を引き起こすプログラムを提示しても結果が分からないし毎回違う可能性もある点でこれだと何も示せてない
きつい言い方かもしれないが注意喚起になっていない
>>634の2行目を見るとコードの動き方に対しての認識として不定の動作と未定義の動作を混同して勘違いしてるかも知れないね
657: 627 (ワッチョイ 6a4d-WFrT) 02/12(水)11:21 ID:OojhOsKe0(2/3) AAS
>>631
未定義の動作なので2行目から7行目のような事が起きるかどうかは分からない
仮に未定義の動作がなかったとしても行目を自明のように仮定することは出来ない
アーキテクチャが色々ある中そういう処理系もあればそうでない処理系もあるしCでは何も規定してない
スタックの仕組みがないものもあればポインタをそもそも数値や番地で扱わないアーキテクチャもある
後段も同様
658
(2): 627 (ワッチョイ 6a4d-WFrT) 02/12(水)11:22 ID:OojhOsKe0(3/3) AAS
>>644
コンパイラの動作に対して必要条件が何も設定されない状態になるという話で最適化は全く関係ない

ちなみに今回の話はK&Rの頃からあるルールなので>>648とはちょっと違う
ただ内容は大体同じでポインタはオブジェクトを指してるもので、その内部形式や扱い方はユーザーが知る必要はない
659: はちみつ餃子◆8X2XSCHEME (ワッチョイ ff32-XAIF) 02/12(水)11:47 ID:cXwd7RB80(1/2) AAS
>>658
言語仕様上で未定義動作とされている状況が実際の機械の上でどう動作するか (その動作は想像できない) という文脈でヤバさを伝えるためになるべく想像外な結果を生む実例を出そうとしているので最適化は関係ある。
660: (ササクッテロラ Spa3-Z3xl) 02/12(水)11:50 ID:XyTZkBHop(1) AAS
最適化しないと無駄なコードや無意味なコードも忠実に出力されるからなぁ
661: (ワッチョイ 4618-6Hi7) 02/12(水)12:49 ID:J/UI6pYQ0(1) AAS
>>658
未定義だから不明を連呼されても大して参考にならんわけで
なぜ現実のgccではあのような結果になるのか理由を説明できないのか?
わかってないようだけど最適化は大いに関係してるぞ
662: (ワッチョイ de76-/Fy3) 02/12(水)13:26 ID:7GgOweZ60(1) AAS
えーと未定義や環境依存を使ったりとかは
Cおよびコンピュータの理解が不十分な
質の劣るプログラマが存在するからでしょうに

そういう人達に重要プログラムを書かせる責任問題でもある
663: (ワッチョイ 5302-aFRq) 02/12(水)15:09 ID:+Pz/j8Me0(1) AAS
相手に過大に説明を要求して、自分は分かろうとしない者は嫌われちゃうよ
664: (ワッチョイ 1e63-euVe) 02/12(水)15:17 ID:iId2MJ1V0(1) AAS
gccのフォーラムで質問出してみたら?
参考にできる回答が得られるかも知れないよ
1-
あと 338 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.029s