[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 2chのread.cgiへ]
Update time : 05/09 12:13 / Filesize : 137 KB / Number-of Response : 558
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

sizeof(char)が必ず1でも、省略すべきではない



1 名前:デフォルトの名無しさん mailto:sage [2007/08/19(日) 20:06:26 ]
malloc(sizeof(char)*(strlen(s)+1))
ではなく
malloc(strlen(s)+1)
と書くような糞コードばかり見て育った、
悪しき慣習を引きずった人は引退すべし


41 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 00:06:15 ]
>>40
「規格上」文字数==バイト数。
たまたまじゃない。

42 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 00:08:37 ]
>>35
Cではキャストは不要だがC++では必要。
まぁ、C++でmallocを使うこと自体がおかしいが。

43 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 00:09:23 ]
>>41
たまたま「規格上」一致する組み合わせ


44 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 00:16:28 ]
>>38
>>31のマクロだと「型と要素数を指定してメモリを獲得する」機能が欲しそうだったんで、
指定の仕方が近いcallocを持ってきただけだよ。

>>1やらの話なら、文字列長渡してメモリのアドレス返すラッパならアリじゃないかなぁ。
個人的には面倒だからやらないけども。

45 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 00:18:40 ]
>>40
たまたまじゃないよ。
あつかってる文字セットが収まる範囲を1バイトにしてるんじゃん。

46 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 00:22:57 ]
ここで文脈を読まずに文字数==バイト数なのはASCIIコードだけだとかいってみる

47 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 00:23:18 ]
>>44
すでに_strdupがあるもんな。

「文字列の尻には\0があるから、+1文字分の領域が必要」
ということに対処するコードは一ヶ所だけにまとめておくべきで、
プログラム全体に散在させるべきではないよね。
それが後で変るかどうかは関係ない。

あちこちにmalloc(strlen(s)+1)と書けばいいと言う人間は、
構造化プログラミングを否定していると思う。

48 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 00:24:19 ]
>>45
牛乳パック1本が1リットルと決まっているからといって、
リットル数を与えるべきところに本数を与えていいと思うか?

49 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 00:29:47 ]
>>47
malloc(strlen(s) + sizeof(char)) って書くってこと?



50 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 00:30:11 ]
恒久的に一本一リットルなら何の問題もないだろ。

51 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 00:41:20 ]
>>50
恒久的にってのもだけど、論理的にも一文字1バイトだし。

52 名前:5 mailto:sage [2007/08/20(月) 00:42:54 ]
俺もsizeof(char) == 1 だと思ってたけど、TCHARがWindowsのAPIがらみの定義らしいとこまで調べたので、strlenもwindowsの特殊仕様な可能性を考えてました。
(引数の型がTCHARとやらに変わるなど、思い込み)
無知なのに口だしてごめんなさい。

strlenがchar固定。sizeof(char)==1バイトが、規格から明らかならば、
sizeof(char)はいらないよね。

察するに>>40,>>43は「バイト数」と言う言葉と、「文字数」という言葉を
厳格に分けたいというところかな?

それに対して、1バイト==sizeof(char)は規格上定義されているから
分けて考える必要はないという反論。ってことですね。私はこっち派。

>>47,>>49
このスレで議論の中心になってるのは、+1ではなくて、
>>1の1行目、"sizeof(char)*" -charのサイズを掛けている-部分だと思うよ。

53 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 00:46:53 ]
>>49
どこから、そういう発想がでてくるのだろ。

size_t CalcRequiredMemoryForString(const char* s) {
return sizeof(char)*(strlen(s)+1) ;
}

もっと細かく分けて

size_t ScanAscizStringLength(const char* s) {
return strlen(s)+1 ;
}

size_t CalcRequiredMemoryForString(const char* s) {
return sizeof(char)*ScanAscizStringLength(s) ;
}

とかでもいい。

そしたら、
char* s2 = malloc(CalcRequiredMemoryForString(s)) ;
と書けるようになるっしょ。

54 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 00:47:20 ]
論点は、 (1)charのサイズの問題 (2)sizeof(char)を書くか なのかな。

(1)はラッパを書く、(2)は書いたら弊害があるのか? でダメ?

55 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 00:55:43 ]
>>53
strlen()+1だけの関数とか、そんなのつかってるのオタクの職場くらいですよ。

56 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 00:58:56 ]
>>53
壮大な釣り?
>size_t ScanAscizStringLength(const char* s) {
string lengthはどう考えてもstrlen()の戻り値そのままだろ。
stringに形容詞がつくだけで長さが変わるなんて気色悪い。
getStringSize()って名前なら判らんでもないが。

で、malloc(sizeof(char) * stringSize)なら「あ〜あ、一一書いているよ」で済むが、
malloc(CalcRequiredMemoryForString(string))なんて書いていたら「戯け」の一喝だな。
# CalcRequiredMemoryForDoublePrecReal()なんてのも作るのか?

57 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 01:00:09 ]
>>55
ふつう文字列クラス使うよな。

strlenとかstrcatとかstrcpyなんて直接使わないもの。

58 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 01:01:31 ]
>>56
ふつうC++なので、やるとしてもテンプレート関数だな。

59 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 01:06:54 ]
>>57
mallocとか使ってることから、ここはC限定ではないのかな?

>>53
そこまで書くんだったら >>49 程度で済ました方が良いと思う。それと、その関数名だと長すぎて使いたくない。




60 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 01:06:55 ]
>>54の(2)sizeof(char)を書くか
www.kouno.jp/home/c_faq/c7.html#8

一般的には、どっちでも良いってよ。

61 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 01:09:02 ]
ポイントとしては、
無知やうっかりミスによってバグを生じさせない
ということ。

+1が必要なことを知らない人もいるし、
+1を書き忘れることもあるし、
sizeとlengthを書き間違えることもある。

じゃぁどうすればいいか。
Cを捨ててC++で文字列クラスを使うべき。

62 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 01:13:01 ]
>>59
C++でもmalloc使う人いるんだよねぇ。

> >>49 程度で済ました方が良いと思う。

strlen(s) + sizeof(char)
これこそ意味不明だねぇ。

1文字分ってことなら、
sizeof(char)
ではなく
sizeof(char)*1
としないとねぇ。

そうするなら
sizeof(char)*(strlen(s)+1)
になるわなぁ。

> その関数名だと長すぎて使いたくない。

いちいち手でタイプする人いるんだよねぇ。
ミスタイプしたりするからコピペが基本よ。



63 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 01:17:55 ]
>>62
長い数式を書かない人なんだね・・・

64 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 01:22:01 ]
>>53
まあ、常識的に考えてこんな関数つかわねーよな。

65 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 01:24:23 ]
>>53とか>>55>>56とか
void *getBufByLen(int length)
{
 return malloc(length + 1);
}

まぁこのぐらいのラッパなら良いんじゃないの?
strlen(str)+1がどのぐらい出てくるかにもよるんだろうけどさ。

どうしても「+1」をソースコードから出来るだけ消したいなら、俺なら
#define LEN2SIZE(x) ((x)+1)
でも作って、LEN2SIZE(strlen(str))で書くか。
したら、今度は副作用がどうとか言われんのかねぇ。

66 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 01:29:49 ]
>>65
そこまでして+1を消すと、かえって読みにくくなるよ。
strlen(s) + 1 と直に書くのがいちばん素直なCのコード。
技巧に走りすぎてもよくない。

67 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 01:38:58 ]
>>66
そうは思うけどさ。
たまに上司の好みで結構色々言われんのよ。
(俺も多分好みで妙なコード書いてるとは思うけど)

んで、そこで激論しても時間無駄だから、
まぁ良いかと思えることは従うことにしてる。

今のところ「+1消せ」は言われたことないけど、
そういう指示が出たらこうするかな、ってぐらいのモン。

68 名前:59 mailto:sage [2007/08/20(月) 01:42:50 ]
>>62
ごもっともです。

ところで、もともとの質問主の環境は VC++6.0 みたいですね。
素直にC++の文字列クラスを使うのがいいのかな...


69 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 04:32:26 ]
>>65
getBufByLenではなくallocBufByLenにしたほうがいいと思う。




70 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 11:05:39 ]
>>62
>C++でもmalloc使う人いるんだよねぇ。
それは酷い。

71 名前:デフォルトの名無しさん [2007/08/20(月) 11:39:01 ]
ひょっとしてJavaに移植するときとか、そこまで考えてるのか?
Cだけなら sizeof(char)==1 が仕様で定義されてるけど

72 名前:デフォルトの名無しさん [2007/08/20(月) 11:47:13 ]
乱れる倫理。10歳以下のセミヌード!
www11.big.or.jp/~magmell/science/watchfiles/semi01.jpg

73 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 11:49:09 ]
うわ・・本当に脱いでる・・・

74 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 11:51:22 ]
蝉の脱皮だろ

この板では空気を読む必要は無い。

75 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 11:52:25 ]
>>71

#include <stdio.h>

int main()
{
printf("%d\n",sizeof(char));
return 0;

}

をCでコンパイルしてみたか?
C++でもコンパイルしてみたか?

76 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 11:55:31 ]
>>72
これはアブラゼミだね

77 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 11:56:31 ]
>>75
CとC++でsizeof(char)は絶対1なのは仕様で保証してるんだけど・・・

78 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 13:19:39 ]
1バイトは8ビットとは限らないが、charは1バイトと規格で決まっている。
ってことでしょ?

79 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 13:37:00 ]
>>75
もう帰れ無能。



80 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 13:40:04 ]
>>43
Cの規格での「文字」の定義は「1バイトに納まるビット表現」。
規格書ちゃんと嫁。

81 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 13:43:49 ]
>>80
文字っつーかcharな。単に文字とか言うとまた噛み付いてくるで。

82 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 14:01:07 ]
>>81
>単に文字とか言うと
規格に於ける定義の話をしてるんだが。

83 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 14:25:58 ]
>>82
それならきっちり「文字型」といった方が誤解ないよねとか
文字とだけ言うとシングルバイト文字とマルチバイト文字を
ごっちゃにするやつが出てくるから 規格話するなら正確に
みたいあn

84 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 14:40:08 ]
>>75
関係ない話なんだが、
sizeof演算子の結果の型はsize_tだけど、こういう場合はintにキャストしなくていいの?

85 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 15:08:04 ]
>>70
C++だろうとmallocは使えるでしょう?
mallocしたものをdeleteしたりしなければ。

86 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 15:12:41 ]
>>80
charが1バイトなのは当然として、
1を掛けるのを省略して書いて良いのかどうか
という問題だろう。



87 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 15:21:31 ]
>>85
使えるけど、new があるのに
>mallocしたものをdelete
する危険を冒してまで態々使う意味が判らない。

>>86
「省略しちゃいけない」とする理由が
「文字数とバイト数は意味が違うから」であれば、
規格上は「文字」=「1バイト文字」であり
「文字数=バイト数」であるから
「省略しても問題ない」よね?という確認。

88 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 15:35:24 ]
問題は無いね
どうすべきかとなると宗教論争になりそうだ

89 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 15:37:25 ]
>>86
C FAQにあるよ



90 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 15:42:03 ]
つきつめるとCHAR_BITすら意味をなさないからあまり気にするものでもないと思うが

91 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 15:45:13 ]
>>87
> 「文字数=バイト数」であるから

それは数値の一致であって、意味の一致ではない。
あくまでも「1バイト文字」の「文字数」なのだから。

省略してもプログラムは意図した通りに動くが、
プログラムが動けば何だっていいというのは間違い。


92 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 15:54:11 ]
>>91
はあ…
>それは数値の一致であって、意味の一致ではない。
意味の一致だってばさ。頭悪いなあ。
「規格では、strlen() はバイト数を戻す」
これで納得した?

93 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 16:06:54 ]
charやstrlenをハードコーディングしちゃうなら*sizeof(char)を書く意味はほとんど無いと思うなぁ。

>>87
new使ったってその危険はdeleteとdelete[]を間違える危険にかわるだけじゃね?

94 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 16:10:40 ]
なんつーか
みんな暇なの?

95 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 16:11:19 ]
規格では、strlen() はバイト数と等しい値を返す
だろ?

96 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 16:25:08 ]
strlenの返す値の意味がバイト数ではなく文字数だと言いたいんですかね。

97 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 16:43:09 ]
そんなに不安ならコメント書いとこうぜ

98 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 16:46:35 ]
>>96
格納するのに必要なバイト数
ではないのは確かだな。

99 名前:デフォルトの名無しさん [2007/08/20(月) 17:09:30 ]
>>1
アルファベット=レターと非アルファベット記号=キャラクターとストリングの意味からして、strlenが間違い。



100 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 17:39:16 ]
外人は文字が2バイトかもしれないなんて考えてないから、
strlenという関数名なんだろ。


101 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 17:50:26 ]
>>94
意味のない議論をしたがる厨房が集まってるだけだろ

102 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 17:54:08 ]
このスレ、すんごい伸びだな。

103 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 18:01:54 ]
>>84
整数型の暗黙の変換ルールがあるから問題ない。
ただ、size_tは符号無しだから、
intに変換されることで情報が失われるかも分からんね。

104 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 18:05:52 ]
>>100同感
2バイトあれば全世界の文字が収まると勘違いしていたしな。


105 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 18:14:57 ]
してません

106 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 18:22:55 ]
このさい8バイトでいいだろ。

107 名前:デフォルトの名無しさん [2007/08/20(月) 18:23:09 ]
>>100
記号一つに2バイトなんて無意味だし不可能。
strlenが誕生した時代は数バイトのメモリが数万円。

108 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 18:30:18 ]
んなわけないだろ

109 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 18:36:58 ]
そんなにsizeof書きたくないんだったら高級言語つかえよ



110 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 18:40:09 ]
なんじゃそりゃ

111 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 18:42:46 ]
そんなにsizeof書きたいんだったら高級言語使うなよ

112 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 18:44:08 ]
>>108
PDP-11は、メモリ64KB程度搭載で、1万ドルくらいだったそうだな。
当時の為替レートからすると、360万円か。

数バイト数万円は違うが、数Kバイト数万円くらいだな。

113 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 18:44:38 ]
>>111
C言語は高級言語ではないな。

114 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 18:52:11 ]
>>112
メモリのコストはその一部でしょう

115 名前:デフォルトの名無しさん [2007/08/20(月) 18:53:46 ]
>>1
#defineで定義しておけ。


116 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 18:54:59 ]
>>114
昔のコンピュータは、メモリのコストは一部なんてもんじゃなく、かなりを占めていたのよ。

117 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 18:56:14 ]
MSXの32KB増設RAMカートリッジが1万円以上だったのを
思い出したような

118 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 18:58:40 ]
Cができたのってやっとシリコンメモリが普及し始めたころだっけ?

119 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 19:03:27 ]
>>84
キャストするべき。
size_tがintと同じサイズである保証は全くない。
sizeof(int) == sizeof(long)の環境に限定するなら、省略するのもありかも試練が。



120 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 19:25:26 ]
C FAQを見てはいけないスレはここですか?

121 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 19:32:08 ]
>>118
PDP-11の頃

>>120
C FAQは聖典ですか?

122 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 19:40:30 ]
聖典w

123 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 20:38:51 ]
>>121
>C FAQは聖典ですか?
いいえ、常識です。

124 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 20:43:43 ]
>>100
>>107
UTF-16とか思い出してあげてください。

125 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 23:07:54 ]
>>123
C FAQ では、sizeof(char)を使うのは、プログラムがわかりやすくなるから、一興だと言ってるが?

126 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 23:10:14 ]
>>124
UTF-16は1文字=2バイトじゃねーよ

127 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 23:13:15 ]
>>125
ぜんぜんいらねーよ。

とも書いているね。まあどっちも正しいってことだな。

128 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 23:15:32 ]
書かなかったからといって不正なプログラムというわけではない。

ということだな。

129 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 23:25:35 ]
>>126
小学生からやり直せ



130 名前:デフォルトの名無しさん [2007/08/20(月) 23:37:29 ]
>>129
Cにおいてsizeof(char)=1は仕様だが、
1バイトが8ビットなのは仕様ではない。

131 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 00:08:16 ]
つまんねー内容をだらだらだらだら
何を言い合ってんのおまえら (w

132 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 00:19:55 ]
ここの人達が、同じプロジェクトに放り込まれたら、
どうなるんだろう...
C FAQ は理解しやすくなる「かも」とかいてあるけど、
逆に意図が分からなくて困惑する人もいるかも。

133 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 00:22:53 ]
同じプロジェクトに入ったら個人レベルでソースファイルを分割し
他人が担当しているソースファイルは一切見ないようにすればOK。
レビューとかあれば、同じ信念をもち曲げないメンバーでする。

そんなプロジェクトやだなぁw

134 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 00:44:11 ]
>>130
>>100>>107がC言語の規格が決まった当時の話をしてるのに、
>>124はもっと最近の話をしてるところが突っ込みどころなわけであって。

ナニコレ。
>UTF-16は1文字=2バイトじゃねーよ

>Cにおいてsizeof(char)=1は仕様だが、
>1バイトが8ビットなのは仕様ではない。

誰がUTF-16の1文字=2バイトとか言ってんだ?
んー・・・もしやUTF-16は1バイトが8ビットの環境て使うべきでない、
とかそういう意見をお持ちの方?

135 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 01:57:32 ]
>>134
charは文字だろ

って話の寄り道だったんじゃないか?

136 名前:デフォルトの名無しさん [2007/08/21(火) 07:54:41 ]
マロック・ストラレン

137 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 08:07:00 ]
文字の型を隠蔽してsizeof(TCHAR)でいくね

138 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 10:44:54 ]
>>137
C++ のクラスをWin32とWinCEで使いまわす俺には必須だぜ!

ところで、>>129 がどこに突っ込んでるのかが知りたい。
UTF-16の1文字は2バイトとは限らないし
2オクテットとも限らないわけだが。

139 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 11:46:27 ]
1バイトのビット数ってこの話にはあんまり関係ないような



140 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 11:57:51 ]
>>138
根本的にズレてるって意味だろう。
>124 は別にUTF-16が1文字=2バイトだとは言ってないから。

141 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 12:21:34 ]
>>138
Win32でもUnicodeでやればいいじゃんかー。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<137KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef