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


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

C言語なら俺に聞け(入門編)Part 95



1 名前:デフォルトの名無しさん [2012/01/13(金) 22:05:06.14 ]
C言語の*入門者*向け解説スレッドです。

★前スレ
C言語なら俺に聞け(入門編)Part 94
toro.2ch.net/test/read.cgi/tech/1324648274/
★過去スレ
makimo.to:8000/cgi-bin/search/search.cgi?q=%82b%8C%BE%8C%EA%82%C8%82%E7%89%B4%82%C9%95%B7%82%AF&andor=AND&sf=0&H=&view=table&D=tech&shw=5000
★教えて欲しいのではなく宿題を丸投げしたいだけなら
  ↓宿題スレ↓へ行ってください。
C/C++の宿題片付けます 155代目
toro.2ch.net/test/read.cgi/tech/1325685876/
★C++言語については避けてください。C++対応明記スレへどうぞ
★分からない事をなるべく詳しく書いて下さい。
★ソースコードを晒すと答えやすくなるかもしれません。
  # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること
  # サイズが大きい場合は宿題スレのアップローダ等を利用してください
★開発環境や動作環境も晒すと答えが早いかもしれません。
★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。

長くなりそうなコードはcodepadに貼り付けてもいいでしょう
codepad.org/

116 名前:o mailto:sage [2012/01/15(日) 14:17:48.14 ]
>>114
だから、自動変数で、と・・・・

117 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 14:18:24.71 ]
最初に立ち戻るんだけど、ストリームは別スレッドから変更されうるんじゃないのかって気がするんだけど。
もしそうならポインタ保持じゃだめだけど、それは大丈夫?
で、そのストリームが読み取り専用じゃないかつ、デリミタのような0バイトよりも大きな文字列があるのなら、strtokの要領で対応できないか?

118 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 14:18:55.57 ]
>>116
自動変数=スタックと仮定すると>>114だと言ってるだろ。

119 名前:o mailto:sage [2012/01/15(日) 14:19:40.12 ]
>>114
すまん、間違えた。

ヒープでもスレッドセーフなのか?
ちょいと調べてみる

120 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 14:20:01.08 ]
>>115
ポインタの先が別スレッドが確保したスタック領域ならそこを壊す。
つか、それはバグと言うんだがな。

121 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 14:20:52.74 ]
>>119
お前はスレッドセーフという単語を理解してないに3億ペリカ。
いや、スレッドも理解してないに10億カノッサ。

122 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 14:21:39.04 ]
「ヒープでもスレッドセーフなのか?」
これなんぞ。
根本的な知識が圧倒的に足りないといわざるを得ない。

チートツールの前に初心者としてまっとうに勉強しなさいな。

123 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 14:25:52.76 ]
mallocがスレッドセーフか? というのならそれはライブラリ次第。

124 名前:o mailto:sage [2012/01/15(日) 14:26:40.81 ]
>>122
ヒープがスレッドセーフなんて聞いたことがない。
ライブラリが対応してスレッドセーフにしているケースなら知っているけど???

君の知っているのはどんなシステム系なんだ?




125 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 14:26:48.56 ]
だから普通と言ってるだろ。
スレッド使う環境でスレッドセーフじゃない設定をわざわざ使わない限りな。

126 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 14:27:16.83 ]
>>125>>123な。
>>124
3億カノッサよこせ。

127 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 14:28:51.62 ]
>>124
関数がリエントラント可能かどうかについてその言葉を使うのであって、スタックやヒープに対して使うもんじゃないよ

128 名前:o mailto:sage [2012/01/15(日) 14:29:42.29 ]
どう見ても、

>>122がダブルパンチ食らっているようにしか見えないけど?

129 名前:123 mailto:sage [2012/01/15(日) 14:30:33.99 ]
>>125
まったくそのとおりだ。ちょっと上のスレもよまんで書いてしまった^^;

130 名前:デフォルトの名無しさん [2012/01/15(日) 14:30:34.75 ]
すごいなぁ、お前。

131 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 14:30:53.25 ]
もちろん、>>130>>128な。

132 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 14:31:21.48 ]
なんだこれ。恥ずかしくなって暴れ始めたのか

133 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 14:33:56.98 ]
>>132
いや、多分素だと思うぞ。

134 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 14:33:59.84 ]
>>124
もしかして「ヒープ領域からメモリを確保すること」の略として「ヒープ」っていってんの?



135 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 14:39:16.96 ]
…静かになったぞ。何かを調べてんのか?

136 名前:o mailto:sage [2012/01/15(日) 14:41:13.91 ]
>>133
素だよ。素人だっちゅってんだろ。

ちなみに、>>135 うんこ位させろよ。

137 名前:o mailto:sage [2012/01/15(日) 14:44:26.42 ]
で、

>>52 って
>普通に個人のコーディング規約に含まれる常識的な内容
だと思うんだけど、違うのか?


138 名前:o mailto:sage [2012/01/15(日) 14:45:49.46 ]
>>134
その、
「ヒープ領域からメモリを確保すること」
の意味が分からんけど?

139 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 14:48:24.79 ]
素かよ。もっとやりたいことを具体的に示せ。
大体わかってるつもりでレスをしているんだが、訳わからんほうに話をずらされてる感じがする。

あと、>>127は大体あってるけど少し違う。
リエントラント可能であることはスレッドセーフであることを保障するが、逆はそうではない。

140 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 14:49:18.43 ]
>>136
素。
ほんと、日本語も不自由なんだな。
恥ずかしくて素人じゃないって言えないだけじゃないのか?

141 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 14:52:26.93 ]
>>138
それをわからずにヒープだスタックだ、あまつさえ「ヒープでもスレッドセーフなのか?」なんてことを言うのか。
逆に「スタックはスレッドセーフ」だと思っているってことだと思うんだけど、これがどういうことなのか説明してくれ。

142 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 14:52:32.31 ]
>>139
そう思ってはじめたのが>>80なんだが。

143 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 14:53:39.55 ]
違うな。>>71だ。

144 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 14:54:09.40 ]
お?>>60じゃないのか?



145 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 14:54:17.21 ]
>>137
>グローバル宣言ができない
個人の開発で完全に禁止する利点があまりない。
グローバル変数をできるだけしないってのはまあ誰でも考える。

個人でコーディング規約を決めていたとして、
それに違反することを「コーディング規約により・・できない」って言い方をする人はあまりいない。
俺の方針に反するだとか、好みじゃないとか、そのレベルでしょ。

146 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 14:55:24.44 ]
素人じゃないことを隠したい素人さん。

147 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 14:55:33.69 ]
俺も文書がおかしいなw
×グローバル変数をできるだけしない
○グローバル変数をできるだけ使わない

148 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 14:57:21.78 ]
>>142
>>8>>83でエスパー大会ってことか…
加えて、>>115でストリームデータ(mainのstrか?)は別スレッドから変更されうる、と。

ストリームデータを変更されたあとでも使用したいのなら、
strへのアクセス処理を「スレッドセーフ」にして、
別領域(要件を満たせるならスタックでもヒープでも)にコピーするしか方法はないよな。

149 名前:o mailto:sage [2012/01/15(日) 14:57:25.09 ]
>>141
スレッドに詰まれたスタックならスレッドセーフだろ。

150 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 14:59:49.89 ]
>>149
すべてのスレッドはメモリ空間を共有する。
基本だ。

151 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 15:00:31.29 ]
「スレッドに詰まれたスタック」って、何?

152 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 15:00:48.32 ]
先にスレッドセーフの国語的な用例を調べて意味を理解してくれ
×スタックはスレッドセーフ
○スレッドセーフな関数、スレッドセーフなコード など

153 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 15:01:26.54 ]
スタック領域がスレッドごとに確保されるってことを言いたいんだと。

154 名前:o mailto:sage [2012/01/15(日) 15:01:33.54 ]
>>146
つまり、お前涙目ってことかな。
仕方ないだろ。俺が素人なんだから。

なんか同じような内容を別のところでも書いた気がするw



155 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 15:01:43.06 ]
>>149
意識をあわせてレスをしようとしてみる。

スレッドのスタックにあるポインタの指すアドレスを複数のスレッドが保持している場合、
そのアドレスはスレッドセーフじゃない
(かなりひどい文だが…

156 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 15:02:06.27 ]
>>154
素人を自覚してるならまずその態度を治せ。

157 名前:o mailto:sage [2012/01/15(日) 15:02:28.96 ]
>>153
あんがと

158 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 15:03:20.08 ]
で、そのスタック領域はすべてのスレッドが共有するメモリ空間にあるわけだが、
そのあたりを1_も理解してないんだろう。

159 名前:o mailto:sage [2012/01/15(日) 15:03:27.27 ]
>>156
回答している人の中に、素人が混じってるから仕方ないと思うよw

160 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 15:03:46.60 ]
>>156
それは大抵の場合、やりたいことを引き出すことよりも難しいよ

161 名前:o mailto:sage [2012/01/15(日) 15:04:05.63 ]
>>158
プロセスって言葉を出させたいってこと?

162 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 15:04:33.23 ]
>>161
そんなことはどうでもいいから>>148

163 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 15:05:41.01 ]
>>161
いや。
お前がスレッドすら1_も理解してないことを自覚させたいだけ。

164 名前:o mailto:sage [2012/01/15(日) 15:10:42.02 ]
>>162
スマートな方法じゃないけど、「スタッククラス」で対応するのも手かもよ。
コピーするだけが能じゃない気がするけど???



165 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 15:11:26.00 ]
お前は何を言っているんだ。

166 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 15:12:22.49 ]
C++なの?

167 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 15:13:26.78 ]
その「スタッククラス」ではコピーが必要ないの?初心者の俺にkwsk

168 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 15:13:44.46 ]
まだ「スタックはスレッドセーフ」という妄想に取り付かれてるようだな。

169 名前:o mailto:sage [2012/01/15(日) 15:14:43.67 ]
>>166
ANSI-Cベースなので、クラスは使わない方向で行きたいが、
コーディングはCDTでやってる。

170 名前: ◆QZaw55cn4c mailto:sage [2012/01/15(日) 15:15:06.19 ]
>>110
いいえ、スタックとプログラムカウンタはスタックごとに別。

171 名前:o mailto:sage [2012/01/15(日) 15:15:31.34 ]
>>168
そのスタックの話をしているわけじゃないのは分かっているよね?

172 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 15:16:33.51 ]
お、QZにちょうどいい相手じゃないか?
ちょっとどんな展開になるのか、他の人はだまってみてようよw

173 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 15:16:56.99 ]
>>164
それで実装したコードを挙げてくれ。そうすればもっとスマートな解決方法を出すことができるかもしれない。

174 名前:o mailto:sage [2012/01/15(日) 15:17:00.12 ]
>>172
そうだな。
素人が1人減るしねw



175 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 15:17:27.54 ]
QZの意見を聞きたくなる場面なんてあまりないからなw
ぜひ回答してやってくださいQZさん

176 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 15:17:43.90 ]
>>172
ああ、うん。珍しくQZの自演暴れじゃないものが見られるかもしれんね

177 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 15:18:02.46 ]
実はo=QZという素晴らしいオチ!

178 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 15:21:33.63 ]
175 名前:あぼ〜ん[NGWord:QZ] 投稿日:あぼ〜ん
176 名前:あぼ〜ん[NGWord:QZ] 投稿日:あぼ〜ん
177 名前:あぼ〜ん[NGWord:QZ] 投稿日:あぼ〜ん

179 名前:o mailto:sage [2012/01/15(日) 15:22:27.21 ]
>>173
実装なんかしてない。

180 名前:173 mailto:sage [2012/01/15(日) 15:28:35.84 ]
QZじゃなくてすまんがレスされてしまったので。

>>179
もちろん実装していないことはわかっている。

>>5がいい方法かどうかがわからなくて困ってたんだろ。
>>164がいい方法だと思いついたのなら、それで実装すればいい。
これが気に入らないのであればレスしなくていいし、質問はQZあてに頼む。

181 名前:o mailto:sage [2012/01/15(日) 15:37:47.56 ]
>>145
いや、そんなことを言っているんじゃなくて、

・局所的にしか利用されず
・他スレッドからの参照に問題あり
・アクセスコントロールに関与する
・マルチスレッド対応の場合
+もろもろ

のような条件があるにもかかわらず、グローバル変数を使おうとする人が世の中にいるのか?
って話。

これだけ条件が整えば、
企業が規制するまでも無く、グローバル変数の利用を控えるんじゃないの???と

182 名前:o mailto:sage [2012/01/15(日) 15:40:14.15 ]
>>163
先回りされて、涙目、だなwww

183 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 15:44:28.99 ]
解散

184 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 15:45:28.11 ]
>>181
>>49の段階ではマルチスレッドの話なんて出てきてなかったろ。
自分だけが知っている情報を他人も知っているはずだと考えるのはよくないことだよ。



185 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 15:47:12.80 ]
>>184
局所に格納してたんだろう

186 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 15:48:25.92 ]
>>185
ああ、さらにアクセスコントロールもされていたようだ

187 名前:o mailto:sage [2012/01/15(日) 15:55:36.98 ]
>>184
条件が出てきた時点で、

「ああ、そうかグローバル変数じゃダメね」

ってレス付くなら分かるが、

>仕事上のコーディング方法を2chで質問かよwww
とレスられた事で

玄人の( というのは間違いで本当は素人 ) の中ではこれだけ条件が付いても
「ああ、そうかグローバル変数じゃダメね」
とは思わないのかなぁ???

という話。


188 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 15:56:17.70 ]
日本語からやり直せ。

189 名前:o mailto:sage [2012/01/15(日) 15:57:47.80 ]
>>188
涙目乙www

190 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 16:01:12.86 ]
やっぱりo=QZか?

191 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 16:02:00.04 ]
質問主アスペ

192 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 16:02:35.15 ]
キチがウヨウヨいると考えたくないしな

193 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 16:02:58.11 ]
言いたいことを簡潔的確に言えるようにならないと開発は無理。
理解力はその前に必要だけど、普通の人なら持っている。

194 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 16:05:00.03 ]
最近はその普通が通じないんだと思うよ。



195 名前:o mailto:sage [2012/01/15(日) 16:06:20.21 ]
>>192
そうだよね。

これだけ条件が付いていりゃ、業務命令じゃなくても、グローバル変数は避けるよねぇwww

196 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 16:08:06.61 ]
別にグローバル変数だってスレッドセーフにすればいいだけ。

197 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 16:13:04.17 ]
>>195
そんな話どうでもいいから本題をQZに質問するといいよ

198 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 16:18:55.49 ]
流れとは別の質問なんだけど
スタック領域とかヒープ領域とかに対して
グローバル変数やstatic変数がある領域って一般的になんていうの?
データ領域?

199 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 16:23:22.30 ]
>>198
スレ違いだが、それでいい。
記憶クラスでググれ。

200 名前:o mailto:sage [2012/01/15(日) 16:25:18.71 ]
>>198
BSSかテキスト領域

201 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 16:25:51.54 ]
>>196
だね。
そもそも、業務命令とか変な条件の前にグローバル変数は避けるのがデフォだし。

202 名前:o mailto:sage [2012/01/15(日) 16:26:33.99 ]
>>200
おっと、途中で送信してしまった。

BSSとかデータ領域とかの話をしてるんじゃね?


203 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 16:27:30.80 ]
>>200
> テキスト領域

市ね

204 名前:o mailto:sage [2012/01/15(日) 16:27:38.02 ]
>>201
そうなんだよ。

だから
>仕事上のコーディング方法を2chで質問かよwww
と言われると、
本職の方は、そんな考え方もしているのかなぁ、と



205 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 16:29:16.03 ]
>>203
なんだ?
テキストってのはコードのことだ。
>>204
で、いつまで話ずらすの?

206 名前:o mailto:sage [2012/01/15(日) 16:29:56.40 ]
なんか、みんな俺に冷たいなぁ。
俺がなんかしたんか?

207 名前:o mailto:sage [2012/01/15(日) 16:30:37.06 ]
>>205
傍系の質問だべ。
答えられなきゃ、黙ってりゃ良いのに。

208 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 16:30:45.97 ]
>>4から読めば誰でもそうなるんじゃないかな。

209 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 16:31:36.72 ]
QZ出てこいよ。
ちょっと質問が高度すぎるか?
あ、質問というより回答がか。

210 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 16:40:35.12 ]
質問主はこれやってみろ。
ttp://www.the-fortuneteller.com/asperger/aq-j.html

211 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 16:43:21.52 ]
>>206
質問に答えているのにスルーして続ける
知らない単語をさも知っているように間違って使う
関係ないところにつっかかって引き延ばす

212 名前:o mailto:sage [2012/01/15(日) 16:50:08.47 ]
>>210
何言っているのか分からんが、

自己診断テスト得点計算結果

あなたの得点は16点です。

社会的スキル
3点
注意の切り替え
4点
細部への注意
1点
コミュニケーション
5点
想像力
3点
閾値内に収まっています。

213 名前:o mailto:sage [2012/01/15(日) 16:52:32.85 ]
>>211
あいや、
スルーしているんなら、レス番号知らせてもらえると助かるよ。

>知らない単語をさも知っているように間違って使う
これは、きちんと指摘してもらえればOK
心は広いから無問題だよ

>関係ないところにつっかかって引き延ばす
新たな質問が出たら、きちんと解決しよう。
普通のことだと思うけど?
これのどこが気に触る内容なのかな?

214 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 16:53:33.84 ]
こういうのは分裂症?



215 名前:o mailto:sage [2012/01/15(日) 16:54:20.80 ]
>>214
それ、なんてクラス?

216 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 17:00:01.71 ]
>>213ちなみにもう問題は解決してるの?






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

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

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