お前らに分かりやすくC言語のポインタを教える

記事サムネイル
1 : 2025/09/11(木) 12:13:56.782 ID:qFiiMDvPM
いいですか?
2 : 2025/09/11(木) 12:14:38.515 ID:o6afRT6k0
お願いします
3 : 2025/09/11(木) 12:16:34.500 ID:wDLzDa650
アドレス指す矢印
5 : 2025/09/11(木) 12:16:57.884 ID:qFiiMDvPM
まず、
涼宮ハルヒの憂鬱
偽物語
ぼっちざろっく

というアニメがあります。
年代順にいれると

アニメ[0] ハルヒ
アニメ[1] 西尾
アニメ[2] ぼざろ

ここまでは良いですか?

6 : 2025/09/11(木) 12:17:36.412 ID:7Xd3BGy20
アニメの型は?
7 : 2025/09/11(木) 12:18:14.249 ID:qFiiMDvPM
>>6
animateクラスです
8 : 2025/09/11(木) 12:19:31.594 ID:qFiiMDvPM
で、こういう感じでアニメが1万個並んでたとします。

イカ娘の入ってる配列は?ときくとすぐわかりませんよね

9 : 2025/09/11(木) 12:19:55.773 ID:2UnnKxj2a
型情報つきのアドレスを保存する型です
10 : 2025/09/11(木) 12:22:49.275 ID:qFiiMDvPM
ポインタを使うと、アドレスを取っておけるのです。

animate *ika=&アニメ[12875]

11 : 2025/09/11(木) 12:24:00.835 ID:qFiiMDvPM
そして、ikaで使えるようになります。
ikaに対する変更は、animateにも反映されます。同じアドレスなので
12 : 2025/09/11(木) 12:25:35.323 ID:qFiiMDvPM
何が変わるか。
涼宮ハルヒとイカ娘の放送回数を足したい時にポインタを使わなければ

アニメ[0].放送回数+アニメ[12875].放送回数
としなければなりません

13 : 2025/09/11(木) 12:26:40.972 ID:qFiiMDvPM
そこで偉い人は言いました。
アニメ[0]とかアニメ[12875]とかじゃなく、ika.放送回数+haruhi.放送回数
の方がソースがわかりやすくね?と
14 : 2025/09/11(木) 12:30:28.807 ID:OwBD9W890
cってまだ使うことあるの
16 : 2025/09/11(木) 12:32:41.841 ID:qFiiMDvPM
>>14
お前の持ってる小型家電はCだ

パソコンのプロセッサもCだ

OSもCだ

Cはダイレクトに信号IOをするための言語だ、画面いじってキャッキャしたいだけならPythonいじくっとけ

15 : 2025/09/11(木) 12:31:48.390 ID:eF3q1S/s0
連想配列にすれば良いのでは?
17 : 2025/09/11(木) 12:35:03.451 ID:qFiiMDvPM
>>15
連想配列とポインタアクセスはおよそ800倍の速度差がある

100万件のアニメのデータを処理するとき、Cで1sで10万件。10秒で100万件処理するとき、連想配列化すると8000秒、2時間待ちになる

20 : 2025/09/11(木) 12:37:56.082 ID:2UnnKxj2a
>>17
ハッシュマップのアクセスにそんだけかかる訳ないぞ
お前の実装がおかしいと思うから見せて
18 : 2025/09/11(木) 12:36:13.383 ID:qFiiMDvPM
ハッシュ変換コストは想像より重いんだ
19 : 2025/09/11(木) 12:37:21.118 ID:qFiiMDvPM
個人で10件のアニメを処理する時は
ポインタで0.001秒で終わるのが0.8秒になっても気にならないから連想配列は否定しない
21 : 2025/09/11(木) 12:38:08.092 ID:2UnnKxj2a
1sで10万件も遅すぎる
23 : 2025/09/11(木) 12:45:20.272 ID:5sxB1RXG0
>>21
相対評価の文なのに絶対値に対する指摘をするやつの愚かさよ
24 : 2025/09/11(木) 12:47:42.009 ID:2UnnKxj2a
>>23
全体的に速度のオーダーがおかしいからよくわからんオリジナル実装なんだろうという指摘
22 : 2025/09/11(木) 12:39:15.128 ID:2UnnKxj2a
何度も無駄なコピー処理でも入れてるんじゃねえの
25 : 2025/09/11(木) 12:48:14.614 ID:qFiiMDvPM
>>22
えっ、処理としか書いてないけど

じゃあこの60分アニメの10万件のaviを1秒でmp4にエンコしてよ

27 : 2025/09/11(木) 12:49:16.424 ID:2UnnKxj2a
>>25
エンコード処理にかかる速度はデータの持ち方をハッシュマップにしても変わらない
28 : 2025/09/11(木) 12:50:15.334 ID:qFiiMDvPM
>>27
なんで話をかえるのかな
エンコードも10秒で終わらないよね
30 : 2025/09/11(木) 12:51:26.690 ID:2UnnKxj2a
>>28
ハッシュの計算が遅いというのは明確な誤り
100万件でも1秒もかからない
33 : 2025/09/11(木) 12:53:21.532 ID:qFiiMDvPM
>>30
じゃあポインタで直接アクセスするのより速いかyesかnoで答えよ
36 : 2025/09/11(木) 12:55:08.436 ID:2UnnKxj2a
>>33
直接アクセスの方がハッシュの計算時間だけ速い
シーケンシャルアクセスになる分とそれを考慮してもそこまでの差にはならないから明らかにお前の実装が悪い
32 : 2025/09/11(木) 12:52:51.903 ID:2UnnKxj2a
>>28
配列から連想配列に変えて800倍になるのは別の原因があるって話
35 : 2025/09/11(木) 12:54:18.948 ID:qFiiMDvPM
>>32
ハッシュ変換コストを無視できないよ
デコードとエンコードは重い処理。それだけで何msかかると思ってるんだ
37 : 2025/09/11(木) 12:55:29.959 ID:2UnnKxj2a
>>35
お前画像データをハッシュにしてんの?
indexをハッシュにしろよ
39 : 2025/09/11(木) 12:55:54.486 ID:qFiiMDvPM
>>37
インデックスだよ何言ってんのお前
40 : 2025/09/11(木) 12:56:14.801 ID:2UnnKxj2a
>>39
indexの型は?
26 : 2025/09/11(木) 12:48:59.072 ID:qFiiMDvPM
個人で10件のアニメを処理する時は
ポインタで0.001秒で終わるのが0.8秒になっても気にならないから連想配列は否定しない
↑処理

わかる?アクセスタイムじゃないんだよ

29 : 2025/09/11(木) 12:51:10.996 ID:qFiiMDvPM
cpu能力が40hzでも1秒で終わるの?
それこそcpu能力依存なのに
「遅すぎる!」とか言うのは頭悪すぎない?
34 : 2025/09/11(木) 12:53:56.457 ID:2UnnKxj2a
>>29
処理時間が800倍になるのはCPU依存の話じゃない
38 : 2025/09/11(木) 12:55:33.341 ID:qFiiMDvPM
>>34
じゃあXXとsha256とsha512を使ったとき
速度は同じか?はいかいいえで答えろ
41 : 2025/09/11(木) 12:57:12.870 ID:2UnnKxj2a
>>38
速度のオーダーがおかしいって言ってんだけどまだわかんない?
44 : 2025/09/11(木) 12:58:54.068 ID:qFiiMDvPM
>>41
だから、それくらいの処理と定義してるのにアホなの?
31 : 2025/09/11(木) 12:51:43.113 ID:FlGLOPYV0
分かりにくい
42 : 2025/09/11(木) 12:57:39.228 ID:2UnnKxj2a
黙って実装見せりゃ終わりだったのに昼休み終わるじゃねえか
43 : 2025/09/11(木) 12:58:32.414 ID:qFiiMDvPM
連想配列はアルゴリズム依存で
衝突を確実になくすためには複雑なアルゴリズムがいる
ここはいいな?
で、連想配列はインデックスをハッシュ化するエンコードとデコードがいる
りんご[たまご]←これも連想配列
たまごは数値化されるが、その数値はアルゴリズムにより異なる
そしてアドレスが散る

りんご[たまご].kakaku
バナナ[いか].kakaku

これを足すのと

*a+*b
どっちが早い?

50 : 2025/09/11(木) 13:02:32.020 ID:rcKfAvoOa
>>43
アクセス時間しか変わらないがお前の実装は遅すぎる
間違いなくお前の実装のどこかにvalueをコピーする処理が入ってる
45 : 2025/09/11(木) 12:59:18.980 ID:9hCWfFXRa
整数indexならハッシュは恒等関数で済むし文字列でsha-2とか使っても所詮はO(N)でビット演算と四則演算程度だからそんなかかる訳ねえよ
47 : 2025/09/11(木) 12:59:43.538 ID:qFiiMDvPM
>>45
はい、整数インデックスって条件を後出しするの?
49 : 2025/09/11(木) 13:01:16.111 ID:rcKfAvoOa
>>47
“文字列でsha-2とか使っても”が読めなかったのか
46 : 2025/09/11(木) 12:59:25.203 ID:qFiiMDvPM
そしてはいといいえで答えを求めても粗探しと言い訳しかしない
48 : 2025/09/11(木) 13:00:20.870 ID:qFiiMDvPM
アニメ[ハルヒ]+アニメ[イカ娘]
にしたかったんじゃねえの?
52 : 2025/09/11(木) 13:06:50.504 ID:UWscb6uQ0
C詳しくなって最高の漫画描けるんか!?
53 : 2025/09/11(木) 13:08:14.729 ID:NZVDbZ/u0
(´・ω・`)何言ってんのかわかんないお

コメント

タイトルとURLをコピーしました