C言語なら俺に聞け 157

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 0345-kMi9)
垢版 |
2021/06/28(月) 11:22:51.50ID:so+vl3vs0
!extend:checked:vvvvv:1000:512
(新スレ立ての際上記コマンドを2行書き込んでください)
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言語なら俺に聞け 156
https://mevius.5ch.net/test/read.cgi/tech/1601271690/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2021/08/16(月) 00:19:13.32ID:x3HJsFala
echo で確認する方法は、その環境下でなければ
なので、別にコマンドプロンプトを起動してではダメですね
2021/08/16(月) 00:21:12.34ID:r0BCUeQy0
>>378
>>379
ありがとうございます、確認できました!
Visual Studio実行環境でこれらの環境変数が追加されているイメージなのですね
2021/08/16(月) 00:23:50.80ID:x3HJsFala
2021/08/16(月) 00:29:55.90ID:sQwoI9K70
VSインストールすると環境変数セットするバッチファイルが入って来たと思うが、今は違うのか?
古い知識で済まん
2021/08/16(月) 04:32:44.78ID:pMWrjH7B0
てすてす
384デフォルトの名無しさん (ワッチョイ 42ad-Iu++)
垢版 |
2021/08/16(月) 10:19:54.49ID:sZNsU9Vp0
すてすて
2021/08/16(月) 14:57:58.88ID:Gh+OcB3lF
実は VisualStudio は初心者向けじゃない
2021/08/16(月) 20:10:17.02ID:BeGCPKkC0
visual studioが覇権取ってからプログラミングが嫌になりました・・・
プログラミングが嫌というかvisual studioの設定とか使い方とかそういうのを覚えるのが・・・
LSI C+メモ帳で良かったのに・・・
2021/08/16(月) 20:17:22.96ID:sQwoI9K70
LSI C(試食版)は16ビットコンパイラでしかもSmodelしか作れないから
64ビットWindows環境で動かすのは無理じゃない?
2021/08/16(月) 20:37:48.81ID:4H+7uDzk0
……Visual Studio Community 2018なんてあったっけ?
2021/08/16(月) 20:41:26.98ID:1MUZwyiI0
vs2019 と cuda の相性が悪かったが治ったのなら起こしてくだしあ
2021/08/16(月) 22:55:54.30ID:r0BCUeQy0
素朴な疑問でprintfでdouble型を表示させようとしたとき%lfでなく%fにする理由なんですが、
floatを引数とするとdouble型にキャストされるので、printfではfloat型もdouble型も同じ%fと記述すればいいことになっている
と言う理解で合ってますか?
2021/08/16(月) 23:08:54.14ID:GAZDNQn70
相性悪いって何かあったっけ?
2021/08/17(火) 03:49:27.19ID:yPn/BtRt0
>>390
あってる。
printf ではというか可変長引数では既定の実引数拡張のルールで float は double に拡張されるから区別しようがない。
よくわかってないやつが %lf って書いちゃうから C99 から仕様に入れることになったみたいな話だったはず。
(逆に言えばそれまでは無かった。)

でも引数に double を与えるつもりなら意味的にそれがわかるにこしたことはないので、
人間が読み書きする都合を考えるなら積極的に区別したほうがいいと思う。
2021/08/17(火) 05:49:50.95ID:bbuY4XG00
>>387
64で16bitモード使えないのは単なる嫌がらせ
技術的に本当はできるのに拒否してる

必要ならVM使うといい
過去バージョンは↓で入手できる
https://winworldpc.com/library/operating-systems
2021/08/17(火) 10:00:30.15
>>393
私は長年武田さんの MS-DOS Player
http://takeda-toshiya.my.coocan.jp
を使っています‥‥
2021/08/17(火) 10:22:58.26ID:bbuY4XG00
>>394
なかなかオモロイサイトだね
спасибо!
2021/08/17(火) 11:04:10.80ID:1ngtDSTVK
>>390
>>392
整数の基本型がintであるように、小数の基本型がdoubleだから。
そもそもdoubleっつー名前が良くないと思う。いまのdoubleをfloatにして、いまのfloatをsingle floatとかshort floatにすれば良かったのに…
2021/08/17(火) 11:14:12.12ID:bbuY4XG00
年代的に元々floatが標準のつもりだったんだろうな
2021/08/17(火) 11:56:57.33ID:4Ah+oX6mM
当たり前は時代と共に変わる
399デフォルトの名無しさん (ワッチョイ 42ad-Iu++)
垢版 |
2021/08/17(火) 16:52:28.09ID:5M+zf85m0
>>396
倍精度ってのを表したかったんだろうな。
2021/08/17(火) 21:48:20.20ID:G/OIjFk20
>>396
>小数の基本型がdoubleだから。

その理由は%fがdoubleだからというトートロジーでない?
2021/08/17(火) 22:05:20.16ID:SEkFORwja
計算自体は倍精度でやっていて、floatの場合結果を丸めてるの?
2021/08/17(火) 22:24:11.58ID:oC68rP2o0
そもそも
> 可変長引数では既定の実引数拡張のルールで float は double に拡張される
って言うのがよくわからん
普通にfloatはfloatのまま渡しゃいいじゃんと思うんだけどなんか理由あったのかな?
2021/08/17(火) 22:44:19.25ID:yPn/BtRt0
引数の受け渡しにスタックを使う場合でもレジスタを使う場合でも
ワードサイズより小さい型はどうせそのワードサイズに調整して積むことになるので切り詰める意味がない。
(ワードにたくさん情報を詰め込むことも出来るといえば出来るけどかえって非効率になる。)
だから int より小さい型を int に調整するというのはハードウェア的
な都合が反映されていると思う。

昔は浮動書数点演算ユニット (FPU) は CPU の外に持っているのが普通だったんだが
その時代でも FPU のレジスタは大きめなサイズを持っていた。
double が収まるレジスタがあるなら double で受け渡すほうが都合が良かったんだろう。

※ この場合の「ワード」は2バイトという意味ではなく各アーキテクチャにおける基本サイズという意味なので注意
2021/08/18(水) 09:07:55.01ID:a3KKdrJy0
ん、8087由来のサイズになってるのはlong doubleだろ
2021/08/18(水) 09:53:36.78ID:AHN/ch/v0
long double って表現がもう頭悪いよね・・・
2021/08/18(水) 14:10:11.42ID:a3KKdrJy0
%lfはどう見てもlong floatだね
%dはint用にしちゃってるから仕方なかったのかな
2021/08/18(水) 19:02:54.03ID:9oCYCOnk0
>>405
ダブロン って表現だとゲンが悪すぎるだろ・・
2021/08/18(水) 19:55:50.38
>>403
>その時代でも FPU のレジスタは大きめなサイズを持っていた。
80bit でしたっけ、そのうち仮数部が何ビットだったかは思い出せません
2021/08/18(水) 20:09:35.86ID:Wv6HiLZZ0
符号部1ビット+指数部15ビット+仮数部64ビット
410デフォルトの名無しさん (ワッチョイ ff02-VfHF)
垢版 |
2021/08/22(日) 01:54:25.30ID:0Cz6ueFz0
Rustのメモリ安全性はボローチェッカーによって担保されているが、
Nimと比較してRustはタイプ量が多い事により限りなく低い生産性と
C++のような高い難読性、超巨大なバイナリ生成性能を兼ね備えています

Nimはバージョン1.5.1でRustのボローチェッカーに似た「View types」が実装されれば、
GC無しのView typesで参照の有効性を検証することによってメモリ安全性を保証しつつ
限りなく抑え込まれたタイプ量で高速化したCのソースコードを吐き出せます

Nimソースコード ==nimコンパイラ==> Cソースコード ==Cコンパイラ==> バイナリ

なので、nimコンパイラが通った時点でメモリ安全性が担保されませんか?

Nimの実験的特徴
著者: アンドレアス・ルンプ
バージョン: 1.5.1
http://nim-lang.github.io/Nim/manual_experimental.html


Nimは限りなく抑え込まれたタイプ量で高い生産性とPythonのような高い可読性を実現し
ているにもかかわらず、高速なCのソースコードを吐き出せるのでC言語でリモートワーク
されている方は割り振られた仕事が早く終わっても終わってないふりをして怠けることができる

「怠け者とはこうあるべきだ!」と言うとても大事な事を Nim は我々に教えてくれます
2021/08/22(日) 11:26:19.76ID:D+A51yiS0
pythonを可読性高いという時点で眉唾だな・・・
2021/08/23(月) 11:13:34.28ID:4N/X7GO90
char *b = "0123456";

printf("%x\n", 3[b]);
// 33

これって、どうしてこういう書き方 3[b] ができるんだっけか
シンタックスシュガーとかじゃなく、明確な理屈があって出来ちゃうんだよね?
413デフォルトの名無しさん (エムゾネ FF9f-tXhk)
垢版 |
2021/08/23(月) 11:39:17.23ID:JYwdk8yBF
*(3 + b)
414デフォルトの名無しさん (ワッチョイ 7fad-WNkQ)
垢版 |
2021/08/23(月) 11:42:03.51ID:UaBHP8Yo0
>>412
いやあ、それ、シンタックスシュガーでしかないと思うが。
[の左側+[]の内側で計算した結果をポインタ扱いにするってだけなので。
2021/08/23(月) 11:52:16.18ID:4N/X7GO90
>>413-414
ありがとうなるほどそーいう理屈なのか
素晴らしいです。 全てを理解していきます
2021/08/23(月) 22:51:00.15ID:qUWlnfUi0
標準でもそのまんまだなぁ

> A postfix expression followed by an expression in square brackets [] is a subscripted designation of an element of an array object.
> The definition of the subscript operator [] is that E1[E2] is identical to (*((E1)+(E2))).
> Because of the conversion rules that apply to the binary + operator, if E1 is an array object (equivalently, a pointer to the initial element of an array object) and E2 is an integer, E1[E2] designates the E2-th element of E1 (counting from zero).
2021/08/23(月) 22:55:19.33ID:OjohHfKH0
余計なお世話になるが

printf("%x\n", 3["0123456"]);

これでもいいんだよな
2021/08/24(火) 00:04:42.72ID:MkJE9y3A0
>>417
良いよ。
2021/08/24(火) 10:01:54.33ID:tBKv4I6S0
脱線するけど、そもそもCでこの書き方できたのか
printf("%x\n", "0123456"[3]);
なんかできないと思い込んでた。 Cはなんでもできるんだな
2021/08/24(火) 17:49:40.18ID:DexxKsi10
IOCCCの黎明期ならマウントとれたネタだね
今ドヤるやつはプークスクスされるだけ
421デフォルトの名無しさん (ワッチョイ 7f81-WQfa)
垢版 |
2021/08/24(火) 19:44:16.50ID:KCG/N/Sb0
stack領域で確保したポインタをfreeしたらどうなるんですか?
2021/08/24(火) 20:03:31.48ID:Y1wLIEKvM
>>419
> printf("%x\n", 3["0123456"]);
はともかく
> printf("%x\n", "0123456"[3]);
は実用でもそこそこ使うだろ
4bitの数値を16進数に変換する時に
"0123456789abcdef"[i]
ってやるとかは定番
2021/08/24(火) 20:04:24.13ID:Y1wLIEKvM
>>421
鼻から悪魔が出てくる
424デフォルトの名無しさん (ワッチョイ 7f81-WQfa)
垢版 |
2021/08/25(水) 01:30:07.26ID:6n+Di1sM0
>>423
どういうことですか?
2021/08/25(水) 01:52:34.44ID:7J8MKXIfa
>>421
酔ってるからかもしれないけど、質問の意味からして分からない
実装によるだろうけど、動的に確保されるオブジェクトはヒープに確保されるだろうし
黙ってれば確保したメモリへのアドレスを保持するポインタはスタックに置かれるし
実装によるけど
426デフォルトの名無しさん (ワッチョイ 7fad-WNkQ)
垢版 |
2021/08/25(水) 02:58:06.66ID:kk6d2P3X0
>>422
定番って言えそうなほど使われているソースを見たことないなあ。
427デフォルトの名無しさん (ワッチョイ 7fad-WNkQ)
垢版 |
2021/08/25(水) 03:01:55.29ID:kk6d2P3X0
>>421
alloca()でメモり確保した場合のことを言ってるの?だとすればfree()しちゃダメだよ。やってしまった場合にどうなるかは使っているライブラリによるんじゃないかな。そういう呼び出しを想定していないライブラリだと落ちるかも知れない。
2021/08/25(水) 03:30:51.31ID:BzERENYF0
>>424
未定義のこと。
C における未定義は何が起きても構わないことを意味する。

あるときネットニュース上でそれを説明するやりとりがあって、
あらゆることが起こりうるという例として鼻から悪魔が出てくる
ことも含まれるというような言い回しが使われた。
https://groups.google.com/g/comp.std.c/c/ycpVKxTZkgw/m/S2hHdTbv4d8J

それが定着して未定義のことを鼻から悪魔というのが通例になっている。
2021/08/25(水) 05:56:16.97ID:oIlmdH3GM
>>426
ちょっとググればすぐに出てくるぐらいには使われてる

char hex_from_nibble(unsigned char n){
return "0123456789ABCDEF"[n & 0xf];
}
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13162097918
430デフォルトの名無しさん (エムゾネ FF9f-tXhk)
垢版 |
2021/08/25(水) 09:19:52.23ID:U8ZXR+0VF
>>421
やってみろ
ほとんどの場合は何も起こらない
2021/08/25(水) 09:57:31.74ID:U3t+QZRrK
>>421
スタック…と言うかmalloc(calloc/realloc)で確保したポインタ以外をfreeすると何がおこるか判らない(鼻から悪魔)。
実際の話だと、大抵の実装ではmallocは確保した領域に管理情報を埋めて返し、freeはその管理情報を見て解放処理をする。この場合、管理情報がデタラメになるのでメモリアクセス違反でプログラムが落ちる事が多い。
2021/08/25(水) 10:00:41.38ID:VHSVWUHA0
freeは何もしないことも許される、なんて言って呼び出しそのものを否定するやついたな昔
2021/08/25(水) 11:31:20.70ID:hlr8Pa7o0
ほとんどの場合は、無人の荒野を爆撃するだけだろうが
いつかは住民が住んでいるところを攻撃するぞ
434デフォルトの名無しさん (ワッチョイ 7f81-WQfa)
垢版 |
2021/08/25(水) 12:30:15.33ID:6n+Di1sM0
僕はc言語自体初心者だったのですが、stack領域で確保したポインタをfreeするというのは以下のコードを指すつもりで言ってました。
int a;
free(&a);
鼻から悪魔が出るというのは未定義動作になると言うのを言うんですね。また一つ勉強になりました。
2021/08/25(水) 12:58:42.10ID:hlr8Pa7o0
ポインタでもないし、何をしたいかが分からん
この時空を破壊したいなら、もっと考えてからにして
2021/08/25(水) 13:00:03.19ID:wz3i5qam0
>>422
俺は愛を信じないので、そのコードはちょっと怖いかな
範囲内という前提があるだろうけど、なんかはみでそう
437デフォルトの名無しさん (ワッチョイ 7f81-WQfa)
垢版 |
2021/08/25(水) 13:41:27.53ID:6n+Di1sM0
>>435
ポインタとアドレス同じ意味で使ってます
2021/08/25(水) 13:46:43.33ID:f+OmsRJCr
>>434
ちなC++触りだすとスコープ{}内で宣言したものはスコープ出たところで
勝手に始末されるちゅー理屈で実装することも増えると思う。
でかい一時配列とかスタックに置きたくもないしいちいちfreeとかdeleteのこと考えたくないから。
変な所でreturnとかしたらfree忘れちゃう。C言語だとその辺は厳格にしないといけない。

あと、ローカル変数のアドレスをあまり気安く使ってると、そのうち関数抜けて廃棄された
アドレスを参照してしまうバグをだしちゃうかも。一度位は通る道かもね。
439デフォルトの名無しさん (ワッチョイ 1f85-tXhk)
垢版 |
2021/08/25(水) 19:45:37.21ID:s4bO6YKI0
>>433
中國のロケットの落下騒ぎを思い出したわ
2021/08/25(水) 22:01:22.70ID:ENQvEefU0
>>435
>>434の&aはポインタだが
2021/08/25(水) 22:22:45.99ID:hlr8Pa7o0
>>440
では、何をfreeしたのか、説明して
2021/08/25(水) 22:46:23.25ID:SkXNk2uR0
ポインタはアドレスを格納する変数
&aはアドレスだが変数ではないのでポインタではない
2021/08/25(水) 23:25:02.44ID:/Q8zinJC0
>>442
いいえ。 ポインタ型の値がポインタです。 (See C99 6.2.5)

C の用語ではメモリ (ストレージ) を占めるものがはオブジェクトで、それを型で意味付けしたものを値 (value) と言います。
実体としては同じですがレイヤによって呼び方が変わる場合があり、アドレスとポインタの違いも同様のものと考えられます。
2021/08/25(水) 23:28:23.41ID:F2PvOiSs0
>>442
何年か前にも見た覚えのある言説だな。元は何だろう?
2021/08/26(木) 01:58:36.79ID:aNUIA15f0
int *p; // ポインタ変数またはポインタ
int a;
&a; // アドレスまたはポインタ
int b = &a; // bはアドレス値の入った整数
int *c = &a; // cはポインタ

こういうこと?
アドレスとポインタは明確に区別されてるの?
2021/08/26(木) 02:10:26.24ID:/WHSCxQr0
 int a;
 int *b;

 b = &a;
 &a = b;
2021/08/26(木) 02:21:59.91ID:aNUIA15f0
>>446
なるほど?
2021/08/26(木) 02:37:50.30ID:aNUIA15f0
>6.5.3.2 アドレス及び間接演算子
>単項&演算子は,そのオペランドのアドレスを返す。オペランドが型“?型”をもっている場合,結果は,型“?型へのポインタ”をもつ。

だからアドレスとポインタどっちでも良いんじゃないの
2021/08/26(木) 07:03:21.90ID:H9rsGF960
&aはint*型のアドレス値(右辺値)で、変数ではないから代入は出来ない。
言葉の厳密な定義は知らんが、自分はポインタは型に紐付いたアドレスと理解してる。

組み込みなんかで
uint32_t a = 0x4020000;
...
*(int*)a = 1;
とか書くけどa自体はただの整数値だしね。
2021/08/26(木) 09:15:02.06ID:GExK9GsR0
>>448

int a=51; // 中山美穂の年齢
&a; // アドレス
(int*)&a; // ポインタ
*(int*)&a; // 中山美穂の年齢
2021/08/26(木) 09:25:24.33ID:IpfDe45b0
アドレスも年齢も表現の対象
ポインタとintが型の名前
2021/08/26(木) 09:26:46.39ID:IpfDe45b0
ageMipoとioDirectionがアプリケーションハンガリアン
iMipoとpDirectionがシステムハンガリアン
453デフォルトの名無しさん (ワッチョイ 7f81-WQfa)
垢版 |
2021/08/26(木) 14:51:44.03ID:BSY6c8/C0
>>441
みればわかりますよね?
2021/08/26(木) 16:05:40.12ID:oVdr9HnU0
言語仕様の文面の上ではアドレスとポインタの区別ははっきりしないので同一視してもかまわないとは思う。
少なくともポインタという用語がポインタ型の変数を指すという主張には賛成できないというだけ。

ただ、言語仕様の範囲内ではそれでいいんだけども言語仕様の範囲外というか実装上の理屈では区別している場合がある。
言語仕様上はポインタの比較は同一の配列 (または集成体オブジェクト) 内の要素を比較した場合や
ヌルポインタとの比較についてしか定義されておらず、それ以外は未定義であると明記 (C99 6.5.8 参照) されていて
関連のない場所のポインタの比較であることが静的に把握できるときは定数に置き換える最適化が適用されることもあるんで
アドレスを比較した通りの結果になるとは限らない。
https://wandbox.org/permlink/SqW5wzZM3fD912Nh
そんなわけでポインタが素朴なアドレス (実体が整数値) だと思っていると思わぬ結果を生むことも有る。
2021/08/26(木) 16:26:17.74ID:IpfDe45b0
気持ちだけは、俺も昔そう思いたかったことがあるけど
JIS X3010ではそうなっていないので、その気持ちはきっぱり捨てた
2021/08/26(木) 16:56:32.08ID:GExK9GsR0
int a; のときに &a+1 とかやると sizeof(int) 進むのね!
マジかよ知らなかった!

じゃあこの &a はほぼポインタだと思っていいのかな? いいの?
2021/08/26(木) 17:01:04.55ID:IpfDe45b0
「ほぼ」じゃなく明白にポインタ
2021/08/26(木) 17:09:18.58ID:oVdr9HnU0
>>456
int a;
と宣言されているとき &a の型は int* で、これを「int へのポインタ」という。
定義上ポインタとされているものに合致する。
2021/08/26(木) 18:57:41.72ID:B7a9vIltM
aはint型の変数
&aは変数aをアドレス演算子&で評価した値
得られた値の型はintへのポインタ型int*
2021/08/26(木) 19:23:18.52ID:2RMrl6dxr
>>456
例から少し外れるけど*(&a[0])に対して*(&a[0]+1)がおかしな場所指すと嫌だしな。
2021/08/26(木) 19:47:54.06ID:aNUIA15f0
ポインタ型の変数→ポインタ、ポインタ変数
ポインタ型の値→ポインタ、アドレス
アドレス演算子の結果→ポインタ、アドレス

こういうことか
2021/08/26(木) 22:07:08.65ID:cHqKnQ440
そして配列 int a[5] から a は何者? 引数に渡すとどーなる? という深淵な所へ
2021/08/27(金) 07:17:43.92ID:5AM8fV7q0
>>459
&aはアドレス演算子と左辺値からなる式
式が生じる結果には値と型がある
2021/08/27(金) 08:24:46.38ID:TRiQmtYg0
> int b = &a;
ポインタ型の値を整数型の値に暗黙に変換して代入
2021/08/27(金) 09:31:13.97ID:sfbhubJqr
>>464
gccでやったら注意された。g++でやったらガチギレされた。
2021/08/27(金) 09:39:50.45ID:02SXv6gRK
>>465
g++なら
int &b = a;
でヨシ(良くない
2021/08/27(金) 09:43:34.61ID:TRiQmtYg0
ポインタを整数値として変換した際、その値が int の範囲内に収まるかどうかは環境でまちまちやでねぇ
2021/08/27(金) 09:54:11.87ID:5AM8fV7q0
ここはCスレ
C++の参照はスレ違い
2021/08/27(金) 10:16:24.88ID:02SXv6gRK
>>467
厳密にはintptr_tだけど、大抵intで足りるでそ?
コンパクトモデル?知りませんなぁ

>>468
すまん、茶々でした
2021/08/27(金) 10:21:47.24ID:TRiQmtYg0
わかってないのに短絡で int は危ないけど
LP64 やら LLP64 やら ILP64 やら
自分のがどうなってるかわかっててやるか、ポータビリティを鑑みて気を使った書き方するか
2021/08/27(金) 10:44:46.26ID:5AM8fV7q0
ポインタのビット列を格納しきれる整数型が必ず存在する保証って箇条どこだっけ
2021/08/27(金) 11:00:51.55ID:nK81wxcE0
>>469
いまや大抵の環境でintじゃ足りないだろ。大丈夫か?
2021/08/27(金) 11:13:41.38ID:i+fGpSJz0
>>471
6.3.2.3 では「結果は何らかの整数型の値の範囲に含まれているとは限らない」とあるし、
7.18.1.4 では intptr_t は省略可能であるともあるので保証はないと解釈すべきだと思う。
2021/08/27(金) 11:49:10.69ID:5AM8fV7q0
>>473
なるほど
これで (int)&a はダメなんてドヤってるやつは根拠を失ったなw
2021/08/27(金) 12:26:48.67ID:nK81wxcE0
>>474
馬鹿なの?主要pfのintサイズも知らないのかよ
2021/08/27(金) 12:55:50.72ID:5AM8fV7q0
日本語でおk
2021/08/27(金) 14:37:29.53ID:nK81wxcE0
うわ基地外に触っちまった
2021/08/27(金) 15:11:03.04ID:28SvbL190
友達いて良かったじゃないか
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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