1 :
デフォルトの名無しさん :
2010/10/24(日) 08:33:23
*p[] ポインタの配列 (*p)[] 配列へのポインタ 豆知識な
3 :
次スレ :2010/10/24(日) 16:43:13
質問はないのか!質問は!
28歳無職ですが今後の人生が不安です。どうしたらいいですか。ちなみにITの経験は3年程あります。
|| ∧||∧ ( ⌒ ヽ ∪ ノ ∩∪∩ (・∀・| | ウヒョー | | ⊂⊂____ノ 彡
>>6 マジレスすると、30までになんとか就職しとけ
29と30は1歳しか違わないが、相手からの印象は相当変わる
確かに
符号なしか符号ありなのか、ソース見てるとわからんようになってくるんですけど
前スレ
>>989 お礼遅れてすいません
ようやく理解できました。ありがとうございます
俺には礼も無しか?
誰だよ
俺にもないのかよ。
>>12 なあに、礼なんかいらねえ。困った時はお互い様だ
分からないことがあったら、また気軽に聞いてくれよな
>>16 はい。
これからもよろしくお願いしますね
がはは
無限ループがわかりません。 いったん無限ループに入っちゃったら もう二度とそのマックは使えないってことですか?
お前の無限ループで地球がやばい
23 :
デフォルトの名無しさん :2010/10/24(日) 23:54:19
普通にソフト作ったら無限ループだらけ
世の中も無限ループってことさ
無限ループって怖くね?
実際に"無限"にループするのか確認したことはない。
しかしながら放置しておくと無限に続くのではないか。何故ならばループから抜け出す条件がないからだ。
右上の×ボタンを押しても停止しないように、あるいは再実行するように作らないとな
char[256]; fgets(buf, sizeof(buf) / sizeof(*buf), stdin); sscanf(buf, "%s", p -> tag); この時ストリームには改行が残るんでしょうか?
30 :
デフォルトの名無しさん :2010/10/25(月) 00:21:43
実際に実行白ボケ
ストリームに残ってるかどうかはその後のデータ次第。 ちなみに、バッファには残ってる。
実際に実行してみるんですが上手くいかなかったので…
http://codepad.org/SxL4FwBV 実行結果がこれなんですが途中で止まってしまいます。
1:データ追加 0:終了 --> 1
本の名前? :fdad
何の言語の本?(C/Cplus) :C
1:データ追加 0:終了 --> 1
まず質問が不完全だな。
36 :
デフォルトの名無しさん :2010/10/25(月) 04:45:33
>>32 fdad の直後に落ちないのが不思議なプログラム
p->book_name と p->tag が指す領域を確保しなければならない、しかもそれらの指すアドレスが不定とくれば....
p -> tag みたいな書き方は始めて見たよ、統一感を出す為に head . next と書くべきでは?
37 :
デフォルトの名無しさん :2010/10/25(月) 05:38:22
オブジェクト指向ー!
>>35 right_shift_1_INT128で、下位桁のMSBをキャリーで書き潰しているのはまずいな
39 :
デフォルトの名無しさん :2010/10/25(月) 07:34:34
ランダウー
http://codepad.org/cCFTN48N 西暦年を入力させて、オリンピック開催年かどうか判断するプログラムなんですが(厳密には違う)
19行目のvalue = oylmpic(year)と言うのがありますが、olympic関数で値が帰ってきた場合
value = enum定数となるという考え方でいいでしょうか?
あと何か注意点があればご教示お願いします
>>43 むしろ曖昧な知識で適当なこと行ってないかお前
適当なこと言ってすいません(´・ω・`)
お行儀が悪いってのは本当そのままの意味だったらすまない Cだと全く問題おこらなくないか?
47 :
デフォルトの名無しさん :2010/10/25(月) 11:53:18
起こらないし何を言ってるのかわからない
>>43 そんなことはみんな知ってるし聞いてない。
ふう、安心した
>>48 デスヨネー(´・ω・`)
他に注意点らしきものなんて何も思いつかない
51 :
42 :2010/10/25(月) 12:15:58
enumをintで扱うというのはint olympicでは不適切だと言うことですか? enum定数を使う場合、関数もenum〜で宣言したほうがいいということですか?
ぶっちゃけどっちでもイイヨー 俺は細かいこと気にしすぎラスィ(´・ω・`)
53 :
デフォルトの名無しさん :2010/10/25(月) 12:29:58
>>42 oylmpic() の型の話より、むしろ case 0: の方が気になる、何の為の enum 定義かと小一時間...
アホ(´・ω・`)
int res; res = olymic(); switch (res){ case enum.hoge1: 処理; break; case enum.hoge2: 処理; break; ・ ・ ・ default: 処理; }
オリミックw
switch (olympic(...)) { case KOLYMPIC: ...; break; case TOLYMPIC: ...; break; default: ...; break; }
58 :
デフォルトの名無しさん :2010/10/25(月) 16:22:36
#include<stdio.h> int f(int x,int *y,int *z,int w){ x=x+5;*y=*y+x;*z=*z+*y-x;w=w*x-1; printf("%d %d %d %d \n",x,*y,*z,w);} int main(void){ int x,y,*z,w; x=3;y=x*x-3;z=&y;w=*z; f(x,&x,z,w); printf("%d %d %d %d \n",x,y,*z,w); return 0;} [実行結果] 8 11 9 47 11 9 9 6 何故2行目の実行結果になるのでしょうか?
int a, b, c, d; scanf("%d%d%d%d", &a, &b, &c, &d); 第4引数dの入力を良略しても 次の処理に移れるようにしたいのですが、 どうすればよいでしょうか。 よろしくお願いします。
>>58 11はfの中で *y=*y+x (=3+8) を計算した結果
9はfの中で *z=*z+*y-x (=6+11-8) を計算した結果
6はmainで y=x*x-3 (=3*3-3) を計算した結果
>>58 これは厄介だ。
一つ一つ紐解こう。
関数main()においてf()呼び出し時点での各変数の値は以下の通り。
x ⇒ 3, y ⇒ x * x - 3 ⇒ 6, z ⇒ & y, w ⇒ * z ⇒ y ⇒ 6
* z ⇒ y ⇒ 6
関数f()において呼び出された時点の仮引き数は以下の通り。
x ⇒ 3, y ⇒ & (main()の)x, z ⇒ & (main()の)y, w ⇒ 6
* y ⇒ (main()の)x ⇒ 3, * z ⇒ (main()の)y ⇒ 6
f()のprintf()実行時。
x ⇒ x + 5 ⇒ 8, y ⇒ & (main()の)x, z ⇒ & (main()の)y, w ⇒ w * x - 1 ⇒ 47
* y ⇒ (main()の)x + x ⇒ 3 + 8 ⇒ 11, *z ⇒ (main()の)y + (main()の)x - x ⇒ 6 + 11 - 8 ⇒ 9
main()のprintf()実行時。
x ⇒ 11, y ⇒ 9, z ⇒ & y, w ⇒ 6
* z ⇒ y ⇒ 6
以上。
>>59 の質問がおかしいので
修正します。
int a, b, c, d;
scanf("%d%d%d%d", &a, &b, &c, &d);
4番目の%d(一番右)の入力を良略しても
次の処理に移れるようにしたいのですが、
どうすればよいでしょうか。
よろしくお願いします。
>>59 良略というのがなんのことだか知らんが、省略したいということならscanf()で"%d"を使う限り無理。
fgets()で1行入力しておいてsscanf()で回収するのが無難。
getsか何かで入力を受け取って自分でabcdに値を入れる処理を書けば良いんじゃね
char buf[100]; int a, b, c, d; if (fgets(buf, sizeof(buf), stdin) == NULL) /* error */; if (sscanf(buf, "%d%d%d%d", &a, &b, &c, &d) != 4) /* error */;
char buf[100]; int a, b, c, d; fgets(buf, sizeof(buf), stdin); sscanf(buf, "%d %d %d %d", &a, &b, &c, &d);
int sts; sts = sscanf("%d%d%d%d", &a, &b, &c, &d); if (sts == 3) { /* d省略時 */ d = … /* 省略時の値をここで代入 */ } else if (sts != 4) { /* error */ /* 入力エラー */ }
なんでお前らbuf[100]で取ってんのにa,b,c,dに入れ替えてんの? buf[100]で取った後、For を100回まわして0を検査でbreak;すりゃ何番目の配列まで使ってるか出るだろ。
70 :
デフォルトの名無しさん :2010/10/25(月) 17:29:11
>>62 おまえさん、それは二重質問だよ
「省略された」入力が4番目とどうしてわかる?
3番目を省略しても入力の個数は1つ足りなくなるし、
そもそも省略ではなくエラーかも知れないだろ
それを言うなら
>>52 のソースだと文字の区切りがわからないから何文字取って入力された値とするかがわからんよな。
例:
入力された値、12345
果たしてこれは1,2,3,4,5なのか12,3,45なのか1,23,4,5なのか123,45なのか・・・以降、すべての可能性
阿呆がいる。scanf("%d%d%d%d", ...)と書いてもきちんと空白文字で区切られていることが想定されていることさえ知らないらしい。
紙の本の上で行数を節約するための ( ){ } スタイルを実際でもやってるやつってアホだよな。
>>73 関数の先頭ならいざ知らず、ifやfor, whileの場合はそれが一つのスタイルとして定着しているからね。
75 :
デフォルトの名無しさん :2010/10/25(月) 17:47:57
数値(自然数)の桁数を返す関数ってありますか?
76 :
デフォルトの名無しさん :2010/10/25(月) 17:48:51
フリースタイルなんだからいいじゃん ただ人に見せるな
77 :
デフォルトの名無しさん :2010/10/25(月) 17:51:26
78 :
デフォルトの名無しさん :2010/10/25(月) 17:55:52
関数ではない 函数だ
>>75 これじゃだめなの?
int keta ( unsigned int n ){
int k;
for (k=0; n>0; k++,n/=10);
return k;
}
浮動小数点の内部表現に大きく依存するだろ IEEE754なら確か公式があったと思うが
82 :
デフォルトの名無しさん :2010/10/25(月) 18:08:37
函数じゃなくて凾數だからね
83 :
デフォルトの名無しさん :2010/10/25(月) 18:11:36
おいおいそんな常識問題に応えられないのかよ 他人に回答を教えられるレベルじゃないんだから このスレに来るな 出直してこい
うきょ
はるばる来たぜ函館
87 :
デフォルトの名無しさん :2010/10/25(月) 18:19:08
自然数じゃなくてもいけますが?w
88 :
336 :2010/10/25(月) 18:19:56
89 :
デフォルトの名無しさん :2010/10/25(月) 18:19:58
ガウス記号ってあったっけ?
90 :
デフォルトの名無しさん :2010/10/25(月) 18:25:15
91 :
デフォルトの名無しさん :2010/10/25(月) 18:35:35
is kanjiってなんですか
は?
漢字 is kanji
時代はUNICODE
95 :
デフォルトの名無しさん :2010/10/25(月) 18:42:13
幹事でしょ?社会人になるといろいろ大変そうだな
96 :
デフォルトの名無しさん :2010/10/25(月) 18:50:57
iskanji()です わかりやすく説明してもらえますまいか
漢字かどうか判定する関数だろ
98 :
デフォルトの名無しさん :2010/10/25(月) 19:04:41
いやちがう
ShiftJIS の1バイト目か判断する
じゃあ関数名が間違ってる
だいたいkanjiってローマ字が使ってある時点で標準関数じゃないってわかるだろ
103 :
デフォルトの名無しさん :2010/10/25(月) 19:38:09
>>97 tekitounikotaerunayo
104 :
デフォルトの名無しさん :2010/10/25(月) 19:48:11
売上1万超えたー マジ嬉しー^^v
誤爆したなら謝らないとな
106 :
デフォルトの名無しさん :2010/10/25(月) 20:45:10
無差別テロだ 誤爆ではない
ふ?
>>36 mallocで領域確保すれば良いんですかね?
回答ありがとうございました。
なぁおまえらforとかifは{}どっちに付ける派? 俺は当然 for(i = 0; i <= 100; i++){ if(num == 0){ } } だが。
>>109 そんなことより、forと(や、)と{の間にスペースが入ってないのが気持ち悪い。
行頭に持ってくる派
112 :
デフォルトの名無しさん :2010/10/25(月) 22:55:41
T-1000 のように変幻自在に客のコピーになる 完全に溶け込むこともまた黒子の技能の1つ
int main(void) { for (i = 0; i <= 100; i++) { if (num == 0) { 派。
インクリメントは前置き派 ++i;
イテレータ考えると前置きにした方がいいのに ついつい後ろ置きにしてしまう派
int* p; 派
てst
int * p派だな
i = i + 1 と同じなのは i++ ++i どっち。
i++
++i
+i+
+ii
i++と++iは違います。i++は、プログラムがその行を実行した後に1増加させます。++iは、プログラムがその行を実行する前に1増加させます。デクリメント演算子も同様です。
i--------i |山崎ハコ | i--------i
こんなに苦しいのなら悲しいのなら……iなどいらぬ!!」
うんこ
このスレの皆でダイテルのC言語本の解答を作るんだ!
ダイテル本って今まで完全スルーしてたわ。普通に本屋に売ってるっけ?ちょっと明日立ち読みしてくるわ
131 :
デフォルトの名無しさん :2010/10/26(火) 05:10:45
i<11とi=<10どっちがはやい?
CPUによる
最適化されたら一緒
134 :
デフォルトの名無しさん :2010/10/26(火) 05:26:36
部分的にみたら、変わらない
136 :
デフォルトの名無しさん :2010/10/26(火) 05:39:56
intもdoubleも計算の速さ変わらないよね? doubleはなるべく使うなって言われたんだけど
137 :
デフォルトの名無しさん :2010/10/26(火) 05:41:14
intの方が速いに決まってるだろ
138 :
デフォルトの名無しさん :2010/10/26(火) 05:51:59
じゃあ unsignedを付けるか付けないかで変わる?
比較対象がいきなり...
何も考えてないと前後関係によってはバグる可能性が出てくる
141 :
デフォルトの名無しさん :2010/10/26(火) 06:41:26
143 :
デフォルトの名無しさん :2010/10/26(火) 06:57:51
goto使って何が悪い for抜けるのに便利や
gotoを使うコードはgotoとか関係なく既に汚くてどうしようもないから使っても良いよ
どこにも許されない要素が見当たらないな
むしろ何処にケチつけたか興味
148 :
デフォルトの名無しさん :2010/10/26(火) 07:51:53
おい 10^0が1にならんぞボケ
は?
除算は遅いからな
そもそも0は自然数に含めるのか 含めるとして0の桁数は数えられるの?とか
153 :
デフォルトの名無しさん :2010/10/26(火) 08:18:25
>>149 a^0=1だろがボケカス
糞コンパイラ死ね
つか「i=<10」って書くか? i<=10じゃねーの?普通。
そんなことはみんな知ってるし聞いてない。
>>155 うるせぇな、知らないんなら黙ってろよボケ
知ってるなら「存在しない書き方」などしないはずだ。 つーかこいつPerl忍者とかいうキチガイじゃねーのか? ちゃんとコテ付けとけようぜーから。
コピペに反応すんな
159 :
デフォルトの名無しさん :2010/10/26(火) 10:20:48
(2^(131)+192)/224は自然数であることを示し 桁数を求めよ
160 :
デフォルトの名無しさん :2010/10/26(火) 11:09:04
38だな
161 :
デフォルトの名無しさん :2010/10/26(火) 11:30:32
『curoff』 関数(?)っていうのが、 ググッても海外のサイトばかりで分かりません どういう関数なんですか、教えてください
cutoffだろ
164 :
デフォルトの名無しさん :2010/10/26(火) 11:51:06
すいません、自己解決しました 仕様書をみて気づきましたが、 知人が作ったhファイルで定義されていました ちなみに、カーソルを消す命令でした ありがとうございました
166 :
デフォルトの名無しさん :2010/10/26(火) 12:12:19
日本語でおk
167 :
デフォルトの名無しさん :2010/10/26(火) 12:18:46
最高の独自言語コンパイラ作ったwww まじうんこwww
168 :
デフォルトの名無しさん :2010/10/26(火) 12:21:42
誤爆したwww
コピペに反応すんな
170 :
1 :2010/10/26(火) 16:10:09
>>130 持ってるけどプログラミング作法も書いてあって良書。
練習問題の解答がないのがあれだけど。
ダイテル立ち読んできたけどその他大勢のC入門書とあまり変わらない感じ C実践プログラミングとかエキスパートCプログラミングとかの方がユニークで良い感じ
エキスパートは入門書じゃないだろjk
いくら知識溜め込んでも、発揮できなきゃそいつは役立たずなんだよ。 口だけプログラマーは腐るほどいっぱいいるんだ。
あ?俺のことか?
>>175 あ?図星だったんですか?
君は俺を許さないんじゃなくてきっと君自身を許してないんだと思うよ^^
ネタにマジレスかっこ悪い
そんなことはみんな知ってるし聞いてない。
つうか昼間っからこんなとこでくだ巻いているようじゃお前らどうせ仕事も友達も金もないだろ。
まあ仕事にしてないから役立たずとまでは言わん。 フリーウェアにはお世話になってるし、日曜プログラマーも大いに結構。 つまり、実践しろってことだ。勝手ツールの一つでも作ったほうがマシ。
急に弱腰だなw
この流れだと、実力も伴ってる俺は口出しづらいな なんかごめん
184 :
デフォルトの名無しさん :2010/10/26(火) 22:49:48
>>184 >夕方だ
ばかじゃね。子供じゃあるまいし。
「夕方だ」笑うw。
「17:43:17」<-どう見てもヒマ人だろ
186 :
デフォルトの名無しさん :2010/10/26(火) 23:00:48
月〜金の学校いってるのはわかったから
187 :
デフォルトの名無しさん :2010/10/26(火) 23:01:22
うん17時はまだ昼間だね
188 :
デフォルトの名無しさん :2010/10/26(火) 23:02:18
大学生だと別に昼間でもおかしくないが
ひょひょっ
190 :
デフォルトの名無しさん :2010/10/26(火) 23:03:21
>>188 あ?ここのスレに大卒がいるわけ無いだろ
大学での常識を持ち出すな
191 :
デフォルトの名無しさん :2010/10/26(火) 23:04:35
5時に仕事終わります
192 :
デフォルトの名無しさん :2010/10/26(火) 23:05:20
朝も昼も夜もヒマなニートばっかりだもんな。 妄想癖があり自分がスーパーハッカーだと思い込んでる人間のクズども。
友達もいない 仕事もない 金もない 彼女もいない 一日PCにかじりついて C言語の妄想に浸る 人間の屑どもの吹きだまり
どうだお前ら自分の将来が不安だろ。 誰もお前らのことなんて必要としてないみたいだぞ。 2ちゃんだけが自分の存在意義を確認する場か? 寂しい人生だなぁ。 まずは仕事にでも就けや。
196 :
デフォルトの名無しさん :2010/10/26(火) 23:13:01
仕事しているなら貴重な時間をこんなところで潰す人って…
元気出しなよ〜。 たとえC言語のキャリアが妄想だとしても 何か別の才能を生かす場がきっとそのうち見つかるさ。
はぁ.....
199 :
デフォルトの名無しさん :2010/10/26(火) 23:20:15
むしろここって学生ばっかだろ 社会人にもなって入門者用の質問スレにいるって
「社会人」て言い方がそもそも学生かニート
社会人は自分等のことを社会人とは言わんな
>>200 じゃあなんて言うんだ
普通に社会人ですって言ってるが
俺も使ってるな
普通は無職っていうんだぞ
>>203 お前はいつもニートですって言ってるから言わないよね
サラリーマンとか会社員とかお役人とかお医者とか まず自分の属性で呼ぶよな。 でひっくるめていうなら大人。 学生とかニートのことは子供。
社会人て特殊な場面でしか言わないわな。 学生気分の抜けない奴に「社会人にもなって」とは言うが 誰かにアンタは何?と問われて自分は社会人だとは言わない。 大概、会社員です。とか教師です。とか公務員です、というふうに職を名乗る。
なんでスレのやつに自分の仕事教えなきゃならんのだ ばっかじゃねーの
210 :
デフォルトの名無しさん :2010/10/26(火) 23:32:55
んーおれも社会人ですって答えるときあるな
「仕事してんのに忙しくないの?」←いわゆる非学生の台詞。 「社会人なのに忙しくないの?」←いわゆる学生・ニートの台詞。
212 :
デフォルトの名無しさん :2010/10/26(火) 23:35:34
いやいや社会人っていうのは使うだろ なんで自分のことを表すのに社会人を使うかどうかの議論になってんだ
学生のくせに「社会人っていうのは使うだろ」とかワロス
>>211 「非学生」より「社会人」のほうが自然に思えるが。
勤め人は安易に自分の事を社会人なんて言わないよ。 自分にそう言うだけの社会性があるのかを常に自問してるからね。 子どもにはわからないだろうけど。
大きな声をだしてスレタイを読んでみましょう
217 :
デフォルトの名無しさん :2010/10/26(火) 23:39:39
218 :
デフォルトの名無しさん :2010/10/26(火) 23:40:34
学生も自分のこというのに学生とは言わない
>>216 「ニートのことなら俺に聞け(キリッ Part72」
72000レスも無駄な文字列積み上げといて「大人」モナにもあったもんじゃねーと。
グダグダ言わずに明日ちゃんとハローワーク行けよ。
220 :
デフォルトの名無しさん :2010/10/26(火) 23:42:03
>>215 それはわかんねーなw
お前は馬鹿だから馬鹿って名乗ることを認めるよ
>>221 わからねーならレスしなくていいからすっこんでろよクズ。
224 :
デフォルトの名無しさん :2010/10/26(火) 23:44:22
学生は自分を学生というし 生活費を稼ぐ仕事をしている者は社会人という 職にあぶれている者は無職という 自意識がどうのではなく相手にわかりやすく表現する配慮だよ
227 :
デフォルトの名無しさん :2010/10/26(火) 23:46:26
今は生涯学習の時代だから
>>227 >なんていうの?
↑こういうくだらない質問はこのスレの範疇じゃないな。
230 :
デフォルトの名無しさん :2010/10/26(火) 23:50:40
>>224 >職にあぶれている者は無職という
というより無色だな。
消えかかってるぞ。
>>230 アホか。そんなつまらんこと知りたければググれカス。
233 :
デフォルトの名無しさん :2010/10/26(火) 23:54:14
>>232 いやお前がどうかって聞いてんだけど?
社会人にもなって〜とかじゃなくてなんて言ってるの?
社会人にもなってそんなことも知らんのか
社会人は社会人って言わないって新説が誕生した。
236 :
デフォルトの名無しさん :2010/10/26(火) 23:56:59
だから学生も学生って言わないって
238 :
デフォルトの名無しさん :2010/10/26(火) 23:58:00
なんだ自作自演か。 ま、そんなことだろうと思ったよ。
240 :
デフォルトの名無しさん :2010/10/26(火) 23:59:38
社会人としての常識
高級言語を扱う低級人間
>>239 いやお前だろ?
自演ってことにして終わらそうとするな
>>242 どっちでもいいよ。
どちらにせよ相手にしてるお前も同類。
いや俺だから
>>244 ,245
なにこのヒト
おかしいのと違う?
247 :
デフォルトの名無しさん :2010/10/27(水) 00:08:23
学生で起業してるのは、、、学生か。
起業家は自分のこと起業家とは言わない
しまいにゃ独り言かよ
サッちゃんは自分のとこをサチ子とは呼ばない
253 :
デフォルトの名無しさん :2010/10/27(水) 00:17:37
サセ子
カリスマ経営者っていうのかな?
結局、学生かどうかの判定をするなら 話題について来れるかでふるいにかけるのが一番てことだな
256 :
デフォルトの名無しさん :2010/10/27(水) 00:25:28
リーナスは学生の時にLinux作ったしな
ほりえもんも学生の時IT企業作ったしな
258 :
デフォルトの名無しさん :2010/10/27(水) 00:27:51
ビル・ゲイツは学生のときにインタプリタのBASIC作ったしな
259 :
デフォルトの名無しさん :2010/10/27(水) 00:29:56
俺も学生の時アルバイトしてたしな
260 :
デフォルトの名無しさん :2010/10/27(水) 00:35:02
ニートですが何か?
ニートは勝ち組
262 :
デフォルトの名無しさん :2010/10/27(水) 00:36:43
俺も学生の時論文が雑誌に乗った同級生がいたしな
友達の友達がアルカイダ そんなわけ(ry
264 :
デフォルトの名無しさん :2010/10/27(水) 00:39:53
7人介せばだれとでも知り合いになれるんだっけ? 誰かプログラムつくって検証して
>>263 ∧..∧
(´・ω・`) あるかいな!
cく_>ycく__)
(___,,_,,___,,_) ∬
彡※※※※ミ 旦
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
\ ドッ!! / \ ワハハ! /
\ / \ ∞
l|||||||||||||| ∩,,∩ ∩,,∩ ∩,,∩ ミ∩ハ∩彡
(, )(,, ) ,,)( )( )
266 :
デフォルトの名無しさん :2010/10/27(水) 00:42:35
関数化について質問します エラーが起きるのですが、どこが悪いのかわかりません 教えてください、お願いします #include<stdio.h> void text ( char ); void main(void) { char mojit; text(moji); } void text ( char Wait ) { printf("文字を表示",moji); }
267 :
デフォルトの名無しさん :2010/10/27(水) 00:43:21
すいません void text ( char moji ) { printf("文字を表示",moji); }
268 :
デフォルトの名無しさん :2010/10/27(水) 00:44:28
C++はわからない
>>266 >どこが悪いのかわかりません
お前の頭。(それと顔)
270 :
デフォルトの名無しさん :2010/10/27(水) 00:45:45
> printf("文字を表示",moji); なにこれ?
>>266 >char mojit;
>text(moji);
↑変数名が違う
>printf("文字を表示",moji);
↑%cを入れろ
釣りにしてもヘタクソだが相手にしたら負け
273 :
デフォルトの名無しさん :2010/10/27(水) 00:47:26
waitどこで使うん? mojiをどこで使ってるん?
どんだけ寂しがりやなんだよw
void main → int main
>>266 charのmojitに何も代入されてないな
277 :
デフォルトの名無しさん :2010/10/27(水) 07:27:41
俺の友達はAKBのオーディション受けたからな あと俺の友達はカツーンの亀梨とメールしてるからな 俺の友達の友達はギャングだしな え?俺?・・・ ・・・
278 :
デフォルトの名無しさん :2010/10/27(水) 09:47:32
アンチウイルスソフト作りたいです アドバイスください
279 :
デフォルトの名無しさん :2010/10/27(水) 09:53:48
OS自作したらウィルスには感染しないよ
ふっほっ
ふっふっ
はっほっひっ
ここが噂の基地外が集まるスレですか
一人増えたw
推薦図書スレほどじゃねーな。
ロベール教団だからな
C++にはstd::stringがありますが、C言語には文字型は無いのですか?
はい
いいえ
charを文字型と呼ぶとちゃんと定められています 文字列型は無いがな
もうMFCとboostなしじゃ生きられない。 好きだったけどさよなら。 効率を重視しないといけないので、お前とはやっていけないんだ。 中年プログラマと仲良くな。 今までの資産のある彼らとなら、お前は後50年は戦える。 達者でな。
294 :
デフォルトの名無しさん :2010/10/28(木) 01:25:14
iPhoneはObjective-C マッカーじゃないとな
295 :
デフォルトの名無しさん :2010/10/28(木) 01:30:59
C と Smalltalk をなりふりかまわず実装多重継承してできてきたアレ
CとC++で気をつけなければならない仕様ってなんですか?
>>296 お前が今まで主に何の言語を触っていたかによって全然アドバイスが違う
Bです
B?本当か?今の時代にそんな奴がいるわけないだろJK
300 :
デフォルトの名無しさん :2010/10/28(木) 02:26:42
俺はCまで済ませた
じゃあ俺はAからだな
マジレスするとNewBから。
303 :
デフォルトの名無しさん :2010/10/28(木) 02:49:55
306 :
デフォルトの名無しさん :2010/10/28(木) 02:56:48
じゃあDは何なんだよ
:-D
すみません。 ここでいいのか分からないけれど質問させてください。 stdoutのバッファ容量ってそのPCに積んでいるメモリ容量に左右されるんでしょうか? いまCで書いたプロセスと別言語で書いたプロセスをつなぐために 標準出力を使用してバイナリデータを送っているのですが、 テストしてみたところ、stdoutから送り出せるバッファ容量の最大がPCによって違うように見受けられます。 そのせいでCから送り出したデータを、受け取る側で即座に裁ききれない場合に 謎のゴミデータが入ってきてしまっているようなのです。 こういう場合にstodoutの最大容量を変更する方法って何かありますか? 当方はWindowsXPを使用しています。 よろしくお願いします。
パイプに謎データが入ることなんてない
ノンブロッキングモードで使っていて、E_WOULDBLOCKが返ってきてるのを見逃しているとか。
311 :
デフォルトの名無しさん :2010/10/28(木) 10:07:39
上地のCMうけるー
readの戻り値みてないだけちゃうんか
それだ!
>>308 入出力バッファのサイズは規格で決められていない。つまり環境依存。
変更したいならsetvbuf()を使え。
ただし既に言われてるように、問題はおそらくバッファサイズと無関係だろう。
http://ideone.com/UoRMX 人数分の名前、年齢、性別を入力させて(人数は何人でも)、それを表示していくと言うプログラムなんですが
関数にうまく値を渡せていないみたいです。なぜエラーが出るのかよくわかってないです……
ご教示お願いします
>>315 とりあえずmallocのsizeofがおかしい
>>315 mainの
data = (value*)malloc(sizeof(value*) * 10);
を
data = (value*)malloc(sizeof(value) * 10);
input
の
iが0で初期化されてないからおかしい
scanf("%d",data[i].age);
を
scanf("%d",&data[i].age);
そんな方法でメモリ拡大しちゃだめ
mallocって戻り値書かなくても良いのに。
<<309 <<312 戻り値のサイズはSTARTとENDのコマンド仕込んで確認してるんですが、 メモリが少ないマシンだとSTARTとENDの間が不定なサイズが返ってくるんですよね...。 <<310 <<314 setvbuf、こんな関数があったとは。 ちょっとsetvbuf使ってやってみたいと思います。 ありがとうございます!
ほっふっ
>>315 俺も突っ込んで良い?
input () で確保した構造体配列が溢れたときに realloc() してるけど、同じサイズで realloc() してるから意味無いよ
そして入力した個数を main() に返してないから output() では何個表示すべきか判らないから3個表示してる
採点するとかなり厳しい結果になりそうだね
普通に考えると count や size も main() が知るべきだから input( value* data, int* pcount, int* psize ) とするべきだろうね
size に関しては main() が知る必要は無いから input() に管理を任せても良いが、その場合は初回の malloc() も input() で
行なうべきだろう
当然 output( value* data, int count ) になるね
余談だが、C++使えるんなら value の管理クラスを作成するのが一番望ましい
class value_array {
private:
value* data;
int size;
int count;
public:
value_array();
~value_array();
void add( value* indata );
int getCount( void );
const value* getData( int index );
};
こんな感じで良いと思う
>>315 構文エラーと型が違うって意味の
コンパイルエラーになってる理由が分からないんだよね?
324 :
デフォルトの名無しさん :2010/10/28(木) 19:57:44
「ABC」と書かれているFileをリードする時に fseekを使わないで直接「C」「B」「A」の順番で読み込む方法(関数)ってありますか?
>>318 mallocをキャストする意味がないって意味?
>>324 FileMappingやmmapを使うとか?条件に合うのかしらんけど
327 :
デフォルトの名無しさん :2010/10/28(木) 21:06:45
恐らくFileはブロックデバイスなんだろうけど、 ブロックデバイスはブロック単位で読み出すから、ブロック内の読み出し順を制御するのはOS上からは難しいだろうね。
ふっふっ
329 :
315 :2010/10/29(金) 06:37:22
331 :
329 :2010/10/29(金) 08:14:15
>>330 関数へのポインタ変数の渡し型がわかっていませんでした。
次からはコンパイルエラーは自分で直すようにします
ありがとうございます
332 :
デフォルトの名無しさん :2010/10/29(金) 11:33:35
5桁の自然数でどの桁の数字も異なる自然数かどうかの判定ってどうすればいいですか? あるいは最初からどの桁も異なる5桁の自然数を作れますか?
ひとつのプログラムでコンソールを二つ同時に開くにはどうすれば良いんでしょうか?
>>333 コンソールは、 1つのプロセスにつき1つだけ割り当てることができます。
このため、 プロセスがすでにコンソールを持っている場合には、 AllocConsole関数は失敗します。
>>332 文字列にして桁同士を比較するんじゃだめなの?10回の比較で終わるよ
>>333 環境依存な話になるけど windows だったらスレッド作って system() でドス窓を起動すれば良いんじゃね?
336 :
デフォルトの名無しさん :2010/10/29(金) 12:09:11
このスレレベル低すぎー
おまえのいう「プログラム」の単位によるな。
くっぴっ
341 :
デフォルトの名無しさん :2010/10/29(金) 19:22:08
回答じゃね?
お前には重箱の隅という渾名をやろう
それだと突つかれる側のことだろ。不適切。
>>332 判定は10で割った商と余りを使って5桁分の数字を取り出しつつ、
出現した数字をビット配列にでも入れて重複判定すればOK。
生成は5桁の数字と1対1で対応するから9x9x8x7x6=27126とおりで
0-27125の数字を乱数で生成、実際の数字は表示するときに計算すればOK。
>>329 プログラムが手に負えなくなったら、オーソドックスなアプローチですが、プログラムをすご〜く単純な部品に分けてみてはどうでしょうか?
たとえば、『名前、年齢、性別』を記録したり表示したりする”モノ”を、たとえば”プロフィールのカード”と考えてみました。
このプロフィールカードに対して行える命令としては、”記録、表示、カード作る、カード消す”の4つだけです。すごく単純な機能だけに絞ってみました。
(『カード全体を見て、新たに新規カードを増やす』のような、全体の処理は、profile.cは行いません。 profile.c が行うのは、あくまで一枚の PROFILE_CARD への読み書き・生成削除、だけです)
profile.h
http://codepad.org/ziwRlgzl profile.c
http://codepad.org/BB6Js1aD profile_test.c
http://codepad.org/HRs4gT4b この3つのファイルをコンパイル・リンクして、実行ファイルを作ります。
gcc -o aaa profile_test.c profile.c
aaa という名前の実行ファイルが作られます。
カード全体を増やしたり減らしたりする処理は、profile.c とは別のプログラムを書いて、そこに処理を任せるように役割分担をハッキリさせれば、
それぞれの処理も単純を保てるだろうから、わかり易くて書き易いと思います。(バグの場所も特定しやすくなるかも??)
ほっほつ
double x=10.5; printf("%.lf",x); の結果が11になるんだけど四捨五入してるの? あと10.50000...を必要小数点だけ表示するにはどうするの?
>>348 必要な桁数なんてお前以外には分からないだろ
必要小数点って日本語でどういう意味?
俺が今作った
>>349 でも%.2lfとかでやると整数部は必要な桁数表示になるよ?
てかprintfだと%f %lfどっち使うのが正しいんだ
352 :
デフォルトの名無しさん :2010/10/30(土) 01:05:47
>>348 double x = 10.5;
int hituyou = 5;
printf("%.*lf", hituyou, x);
エキスパートCって入門書とポインタ完全制覇読んだぐらいでもおk?
354 :
デフォルトの名無しさん :2010/10/30(土) 01:48:08
おk 読んでなくても問題ない
>>351 C89なら%fが正しい、%lfの場合の動作は未定義、
C99ならどっちでもおk。
可変長引数のfloatはdoubleに格上げされるから、
floatとdoubleを区別をする必要はないからね。
Kernighan 先生のプログラミング作法は必携の書だから買っとけ。
358 :
デフォルトの名無しさん :2010/10/30(土) 10:35:46
いまだに人類の月面着陸が捏造だと信じているやつがいるのに驚き
シグナルハンドラを作っているのですが、 ハンドラ内では、新しいシグナルが来たときのことを 想定して書かなければいけないのでしょうか?(排他処理は別として) それとも、シグナル毎にスタックが積まれるのでしょうか? 要はシグナルのとりこぼしが無いように書きたいです 環境はVMware 2.5.3 + OpenBSD 4.6です
>>359 その通り
処理中に次のシグナルが来たら、別タスクでハンドラが同時進行することになる
普通はハンドラで自前のスタックに積んですぐ終了、スタックの処理は別タスクにする
>>359 BSDだと、シグナルハンドラが呼ばれたところでそのシグナルはマスクされ、
シグナルハンドラが終わるまでに同じシグナルが来てもペンディングされる、と思う
>>360 >>361 なるほど、BSDだけちょっと違うのですか
いずれにしても、シグナルハンドラをさっさと終了するように
書いた方が良いということですね
霧が晴れたようです
ありがとうございました
>>357 どんな本かは分からないけど、どうもありがとう。
364 :
デフォルトの名無しさん :2010/10/31(日) 00:22:09
i++より++iの方が速いのはなぜ?
>>364 そら式を評価する前に実行されるからだろ常識
367 :
デフォルトの名無しさん :2010/10/31(日) 00:34:42
#include<stdio.h> main() { int k[12]= {1,2,3,4,5,6,7,8,9,10,11,12}; int day day=k[11]; printf("%d",day); } 配列の勉強してるんだがエラーがでてしまう Output: 1 2 3 4 5 In function 'main': Line 9: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'day' Line 9: error: 'day' undeclared (first use in this function) Line 9: error: (Each undeclared identifier is reported only once Line 9: error: for each function it appears in.) 直し方おしえてください
int main(void) int day;
まずセミコロンちゃんがないねえ
void mainも許せないが何も書かないのはもっと許さない
#include<stdio.h> int main(void) { int k[12]= {1,2,3,4,5,6,7,8,9,10,11,12}; int day; day=k[11]; printf("%d",day); return 0; }
char *consumes(char *s, int n, ...){ va_list list; int i; va_start(list, n); for(i = 0; i < n; i++){ s = (*va_arg(list, char (*)(char*)))(s); if(s == NULL){ return NULL; } } va_end(list); return s; } ワーニングを吐きます.助けてください.
ひとつ、知っておくと良いことを教えてあげる。
Cコンパイラのエラーメッセージは、解析不能の箇所が現れた行番号を表示する。
そして、C言語プログラム自体には、行による区切りは意味を持たないため
本当にエラーメッセージが表示している行に問題がある場合のほかに
エラーメッセージの行の直前の行に問題がある場合がある。
(実際には、それ以外の箇所の場合もある)
>>367 の場合、エラーメッセージは9行目にエラーがあると言ってるが、
実際には、8行目の最後にエラーの原因がある。
そんなことはみんな知ってるし訊いてない。
まさかここまでこのコピペが当てはまるとはな
ちゃんと合ってて逆にコピペの意味をなしてないな
そんなことはみんな知ってるし聞いてない
×ワーニング ○ウォーニング
ウヮァーナン
なにこのいかにも週末な流れ
どんな流れなのか詳しく
384 :
デフォルトの名無しさん :2010/10/31(日) 01:16:39
>>379 異なる自然言語間の不完全な写像に○も×もねーよ
385 :
デフォルトの名無しさん :2010/10/31(日) 01:17:17
うぉーにんぐ わーにんぐ
×ワーニング ○ウォーニング
ウィニング
確かにいかにも終末的な流れだな
ウォンテッド
質問なんですがファイルの中の単語だけを抽出するプログラムを作りたいのですが空白の部分はどうしたら良いんでしょうか?
391 :
デフォルトの名無しさん :2010/10/31(日) 01:26:59
perl使う
いまだにワーニングとかウーニングとか言ってるやついるの。
飛ばす
wantedはワンテッドでもウォンテッドでもいいし
395 :
390 :2010/10/31(日) 01:28:28
マジレスなんでよろしくお願いします。
397 :
デフォルトの名無しさん :2010/10/31(日) 01:30:24
ウォアニングだろ
>>390 普通に読んで
0x20と0x8140と\tを読み飛ばせばいいじゃない
>>390 そういうのをどうするか決めるのが設計だろ。
自分で決めれるなら好きにすればいい。
'('とか')'とか','とか'-'とかどうするの
>>401 質問者に質問しているのか?お前が質問者なのか?
>>401 アルファベットとそれ以外で判断すればいいんじゃね。
404 :
390 :2010/10/31(日) 01:40:54
getc(fp)で読み込んでisalnumで判断するようにします。分かりにくい質問でしたが回答ありがとうございました。
ctype.hにいろいろあるでしょ
406 :
デフォルトの名無しさん :2010/10/31(日) 01:41:19
パールつこうた
unixのコマンドつこうた
408 :
デフォルトの名無しさん :2010/10/31(日) 01:42:46
lolってなに?
万歳
エロス
それはそうと今日のダイハードはお前ら凄い活躍だったな。
俺はスパハカだからな。 あれぐらい余裕だね
そんなことはみんな知ってるし聞いてない
なにやってんの?コメントかスタブ付け足してよ
×ワーニング ○ウォーニング
ウォーニングも書けよ
418 :
デフォルトの名無しさん :2010/10/31(日) 02:03:49
×ウォーニング ○ウォーキング
ワェーニング
CとC++のenumの違いは?
ガウォーク
422 :
デフォルトの名無しさん :2010/10/31(日) 02:11:41
レイプぐらいでガタガタ抜かすな 犯すぞコラ
423 :
デフォルトの名無しさん :2010/10/31(日) 02:13:13
誤爆した
最悪の誤爆だな
通報しますた
うむ、よくやった
427 :
デフォルトの名無しさん :2010/10/31(日) 05:09:13
変数名の中に変数名使うにはどうしたらいいですか?
構造体の話?
429 :
デフォルトの名無しさん :2010/10/31(日) 05:59:01
平方数かどうか判定するにはどうしたらいいですか?
>>372 可変引数から関数ポインタを取得しようとしてるのかな?
va_arg() はマクロだから関数ポインタの様な途中に変数名が入る様な特殊な型表記に対応してないと思うよ
そもそも、char (*)(char*) この表記が type として許されるのかも疑問だけど
・横着しないで typedef で関数ポインタ型を定義する
・va_arg() の戻り値をいったんは変数に格納してから使用する(こっちは意味無いかもしれない)
この2点を直せば動かないかなぁ
蛇足だが、
typedef char (*MY_FUNC)( char* );
君のソースからするとこうなると思うけど、実行結果を s に代入してるから
typedef *char (*MY_FUNC)( char* );
が正しいと思うんだけどどうかな?
>>429 sqrt(x)を四捨五入して二乗して元に戻るかじゃダメなの?
>>429 int isSquare(int n)
{
int i, j;
for(i = 2; i * i <= n; i++) {
for(j = 0; n % i == 0; j++) n /= i;
if(j & 1) return 0;
}
return n == 1;
}
433 :
デフォルトの名無しさん :2010/10/31(日) 09:28:49
>>372 7.15.1.1. にある
> 仮引数型は,その型のオブジェクトへ
> のポインタの型が,型の後ろに単に*を置くことによって得られる型名でなければならない。
という文言に違反している
ところでエラーではなく警告で済んでいるらしいが、
その警告を無視するとどうなるんだ?
素数を求める計算をしようと以下のプログラムを書きました。 エラーが出ます、なぜでしょう。 #include <stdio.h> #declare NUM 900000000 int main(void) { int i,n; for(n=2; n<=NUM; n++){ for(i=2; i<=n; i++){ if(i == n){ printf("%d¥n",n); } else if(n % i == 0){ break; } } } return 0; }
435 :
デフォルトの名無しさん :2010/10/31(日) 10:08:52
declareってなんだよ
>エラーが出ます、なぜでしょう。 せっかくコンパイラが教えてくれてるのに無視かよ可哀想…
>>437 どんなメッセージが出るって言うんだ?
うpしろ
439 :
デフォルトの名無しさん :2010/10/31(日) 12:09:36
ああインデントに全角空白使っているのがダメ
>>439 アンタ初心者?
2ちゃんでインデント表示するための工夫と見やすくするためのお前らへの思いやりだろw。
そんなことも知らんでム板にいるとは・・・。
バカ過ぎて笑える。
>>440 いつもインデント無しでソースを書き散らして絡んでくる基地外だから相手にすんな。
codepadかideone使えって言ってるだろ
443 :
デフォルトの名無しさん :2010/10/31(日) 12:24:22
エラー起きねーじゃねーかカス
444 :
372 :2010/10/31(日) 13:20:10
>>430 の最期に指摘してあるように型の表記を間違っていただけでした.サーセン
445 :
デフォルトの名無しさん :2010/10/31(日) 13:24:06
> typedef *char(*MY_FUNC)(char*); 記憶クラスへのポインタなんかできるわけないだろ
.
>>445 あぁよく見たら間違ってるな
typedef char*(*MY_FUNC)(char*);
の誤りだ
>>444 しかし、型が間違ってるだけだったの?
char (*)(char*) みたいなのでも type として認識されるんだ
俺も勉強になったよ、何の役にも立たないとは思うけど
しかしva_argの戻り値で関数を呼び出すソースは初めて見たわ パッと見何をしてるのか最初はわからなかった Cはこの辺り読みにくいな
おまえのレベルが足りてないだけだろ。
そんな言い方しなくてもと
>>448 レベルだと?Cは複雑な宣言も酷評を受けてるだろ
言語の欠陥なのに人のせいにすなアホ
お前同じ事職場で言ってみ
すぐ左遷されるぞ
お前の性格の欠陥だ
>>447 そもそもメリットが判らんよ
関数ポインタの配列で渡せば良いと思うんだが
一般人的感覚なんて宛にならない
Cの可変長引数なんてprintf系のフォーマット+任意型値リストみたいなの専用だろ
トリッキーなコード書いて、はまりたいだけでしょ
456 :
デフォルトの名無しさん :2010/10/31(日) 20:00:24
>>450 表現力を失う選択をしたわけでもないのに言語の欠陥とは何のことだ?
それから左遷ておまえいつの何の話をしてるんだ?
いちおう付き合ってやると C の文法ごときで無能の言い訳をする奴こそ箸にも棒にもかからんのだが
457 :
デフォルトの名無しさん :2010/10/31(日) 20:06:50
レジストリクリーナソフト作りたいです
458 :
デフォルトの名無しさん :2010/10/31(日) 22:31:10
うるさい糞ジャップ
この流れワロス
460 :
デフォルトの名無しさん :2010/10/31(日) 23:00:08
レジストリクリーナソフト作りたいです
作らないでください
462 :
デフォルトの名無しさん :2010/10/31(日) 23:03:35
なんでですか?
ひょっひょっ
Wise Registry Cleaner掛けたらBorland Developer Studioの再インストールを余儀なくされた いらん所を壊してるらしい
んで結局レジストリ使うのは推奨なのか避けるべきなのかどっちなんだよ。
466 :
デフォルトの名無しさん :2010/11/01(月) 08:15:47
高級つぶあんうまいよな 100円だけど栗入りだし高くない ただセブンで売っていないのが残念
467 :
デフォルトの名無しさん :2010/11/01(月) 08:41:11
精神鑑定意味あるの? 正常な精神で人殺しちゃうほうが異常だろ?
レジストリなんてもんを背負ってるOSを使ってると大変なんだな まぁ同情はするが共感はしない
469 :
デフォルトの名無しさん :2010/11/01(月) 10:37:04
Cでゲーム作るとき一番簡単なゲームってなんですか?
倉庫番
平安京エイリアン
上海
早打ちガンマン
スト2
エグゼド・エグゼス
スロット
ルート16
クレイジークライマー
バーガータイム
ディグダグ
じゃんけんだろ
○罰ゲーム
○×ゲームと聞いて映画「ウォーゲーム」を思い出した
int main(int argc, char **argv)と書いてある時がありますが int main(int argc, char *argv[])との違いはなんですか?
無い
そもそも p[i] が *(p+i) と同じなんだから。
仮引数のときは例外として[]はポインタに読み替えられる。 だからポインタのポインタとポインタの配列は同じ意味になる。
配列のポインターは違うんで注意
そんなことはみんな知ってるし聞いてない.
俺は知らなかった はい論破
492 :
デフォルトの名無しさん :2010/11/01(月) 22:10:09
論破←
配列のポインタ (*p)[] ポインタの配列 *p[] 豆な。
そんなことはみんな知ってるし聞いてない
そんなことはみんな知ってるし聞いてない.
俺は知らなかった はい論破
なんちゅう流れやで!
味覇
炒飯にすると美味しい味覇か!
お前らレベルになるとC言語で炒飯作れちゃんだろ?
そんなことはみんな知ってるし聞いてない
チャーハンなんて誰でも作れるし、チャーハンを得意料理とか言っちゃうプログラマは信用してない
にげロンパ
得意な料理はスパゲッティです。
スパゲッティがぐちゃぐちゃに絡まるとか、プログラマはろくなもん食ったことないんだろうなw
得意料理はビシソワーズです!
( ̄| ̄ ̄ ̄ ̄ ̄ ̄) \_|_____○/ / //ノノノ人ヽ ヽ | / -‐' 'ー-' \ヽ | || (●), 、(●:ヽ / | ,,ノ(、_, )ヽ、,, | あーさーくーらー \ .`ニニ´ .:::/ /`ー‐--‐‐ー´´\
コーヒー入れるの得意
>>507 この速度でそのコピペを貼れたのは評価する。
510 :
デフォルトの名無しさん :2010/11/01(月) 23:09:49
コピペにマジレスかっこわるい
現実社会じゃ使い物にならないバカどもの吹きだまり
そのかわり電脳世界を支配してる
514 :
デフォルトの名無しさん :2010/11/01(月) 23:26:15
>>73 こういうのが良いの?
if () {
}
俺が一声かけるだけで闇プログラマーが300人以上は結集するよ。
相変わらず友達いないんだな。かわいそうに。
>>516
闇プログラマはgoto文を恐れない
>>493 > 豆な。
わたしのお豆でもイイの? ウフン...
>>521 幼稚園に出向いて低レベルとかお前バカだろ
誰でも初めはこんなもんです。熟達者ほど忘れてるだけ
え?どゆこと?
ポインタの配列渡すときに**pって渡そうとしたらエラーが出ました。 pだけで良かったんですね。
最近c言語を学び始めました 「各入力行から、行のあとのブランクやタグを除き、かつ空白行はすべて削除するようなプログラムをかけ」 という問の答えがわかりません;; putchar、getcharを使うんだと言う事はなんとなくわかるんですが・・・ どなたか優しい方このプログラムの作り方おしえてください
答えだけ欲しいんなら宿題スレがあるのでそっちへ ひとつずつ教えてもらいながら1歩1歩進んで行きたいんならここでもいいけど、それならまず自分がどこまでわかるのか、わかる部分とわからない部分を明確にしてください
「各入力行」と言ってるのだから入力は行単位。 gets か fgets を使え。 あとは入力された byte 列を加工するだけ。 その後どうするかは仕様に書いてないので何もせずプログラム終了。 表示の類は行なわない。
>>526 char str[256] ;
char* p ;
gets ( str ) ;// 1行読み取る
for ( p=str ; *p ; p++ ){
if( *p==' ' || *p=='\t' ){// 空白文字ならスキップ
continue ;
} else if ( *p=='<' ){// タグの開始文字が見つかったら
while(*p!='>'){//タグの終了文字までスキップ
p++ ;
}
continue ;
}
putchar(*p) ;
}
はい
あとは問題の仕様にあわせて書き直せ
これはひどい
531 :
デフォルトの名無しさん :2010/11/02(火) 18:50:22
すみません、基本的な質問ですが、 CString a[10]; char b[10][256]; lstpcpy(b[0],a[0]); でa[0]="abc"の値がb[0]にコピーされません。 何か問題ありますでしょうか?他の方法がありましたら教えていただけますようお願いします。
>>531 CStringがMFCのそれならスレ違い。
自分で定義したのならそれを明らかに。
いずれにしても、使い方が間違っていると思われ。
534 :
531 :2010/11/02(火) 19:04:33
すんません
stpcpy() なんて関数有るんだな、知らんかったよ 便利な気もするけど、使ったら何これって言われそうだ
>>535 俺も初めて見たわ
実装の問題になるけど、オリジナルの dst を保存しなくていい分だけ数ステップ速いとかかな?
続けて連結する場合、strcatよりstpcpyの方が終端検索分だけ早そう それくらいしか思いつかない
>>536 文字列を連結するときに strcat() 使うより早いよね
strcat() 内での NULL 検出が必要ないから
内部では終端探してるだろうから速度は変わらん。手間の問題だな。
540 :
デフォルトの名無しさん :2010/11/03(水) 12:54:49
sqlite.dllってなに?
sqliteのdll
>>539 strcpy(s, a);
strcat(s, b);
strcat(s, c);
strcat(s, d);
より
p = stpcpy(s, a);
p = stpcpy(p, b);
p = stpcpy(p, c);
p = stpcpy(p, d);
のほうが速いだろ。
バッファオーバーフローしないように注意するとそんな速度差は吹っ飛ぶような気がする
「内部で終端探してるから速度は同じ」ってのがよく分からん。 ただの勘違い?
>>544 多分
stpcpy( stpcpy( stpcpy( s, "A" ), "B" ), "C" );
みたいな書き方を美しいと考えた人の発明ではとも考えるんだけどね...美しいか?
そも stp ってなんだろ?
546 :
デフォルトの名無しさん :2010/11/03(水) 15:14:34
MOD_SSLを使ってSSLサーバを構築しようとしています。 最初にmakeしたときは、ndbm.hがないというのでネットで探したら見つかりました。 それをコピーして使ったところコンパイルは通るようになりました。 しかし、起動に失敗してエラーログを見るとmod_auth_dbm.cに未定義の関数 dbm_fetchがないというエラーが出ていました。犯人はもともとapacheに 含まれていないgdbmというソフトの中のndbm.hというヘッダの中にあって、 dbm_fetch関数を定義してあるソースコードもありました。未定義の関数を コメントアウトするとコンパイルに失敗します。 この実行時エラーをなくすためにはどのようにコンパイルすればいいのでしょうか。 makeの読み方がわからずどのようなオプションをつければいいのかわかりません。 解決方法が解る方がいたら教えてください。 開発環境はSlackware11.0、GCC3.4.6です。
先にgdbmをインストールすればいいんじゃない?
548 :
デフォルトの名無しさん :2010/11/03(水) 17:16:09
dbm_fetch.cだけをコンパイルしたいのですが、外部参照の関数が多くて 単独でのコンパイルは難しいようです。少なくともどのようにコンパイルすれば いいのか私には見当がつきません。makefileの記述を載せれば答えてもらえる でしょうか?libgdbmにもリンクしようとしましたがエラーが出てだめでした。 どのようなエラーが出たのか見せたほうがいいでしょうか。
549 :
デフォルトの名無しさん :2010/11/03(水) 17:22:54
> dbm_fetch.cだけをコンパイルしたいのですが そんなアクロバティックな真似は無理です
>542 話の発端がわからないけど、strcpy(dst, src)の戻り値はdstです。 あとのコードはsにa, b, c, dを上書きしているだけで、連結になっていません。 文字列の編集したいなら、普通はsprintfを使うと思います。 sprintf(s, "%s%s%s%s", a, b, c, d);
お前はstrcpyとstrcatの区別もできないのか
区別できてないのはstrcpyとstpcpyの方か
554 :
デフォルトの名無しさん :2010/11/03(水) 17:40:06
シンボル参照に失敗しているだけだと思うのですが、 gcc -c dbm_fetch.c dbmfetch.c でコンパイルできるかやってみます。
555 :
デフォルトの名無しさん :2010/11/03(水) 17:44:10
いろんなエラーが出てだめでした。 これさえ解決できればSSLサーバができるんですが・・・
まだstpcpyの話してんのか 俺もtypoに気づいた時は笑ってしまったが
>>551 stpcpy()を使う使わないって話ではなくて、内部でどうこうしてるから
高速化されないって話に、いや高速化されるでしょって話をしてるの。
559 :
デフォルトの名無しさん :2010/11/03(水) 18:16:32
gcc -c -I../../os/unix -I../../include -DLINUX=22 -DHAVE_SET_DUMPABLE -DNO_DBM_REWRITEMAP -DMOD_SSL=208130 -DUSE_HSREGEX -DEAPI `../../apaci` -fpic -DSHARED_MODULE mod_auth_dbm.c && mv mod_auth_dbm.o mod_auth_dbm.lo gcc -shared -o mod_auth_dbm.so mod_auth_dbm.lo
stpcpy()を使うとCPUメーカーが極秘にしている超高速命令に展開されるらしいぞ 逆アセンブルしても?????としか表示されないので一見何をやってるのかわからない
文字列の連結はsprintf()使うのが普通なのか。 sprintf(s "%s%s%s", a, b ,c); が strcpy(s, a); strcat(s, b); strcat(s, c); より特にいいようには見えないけど。
__builtin_にすべきだよなstrcpyもstpcpyもw,l,sみたいなプレ|ケツフィックス付けた関数の増殖を防げるしバッファ長の安全もメタっぽい方法で確保できそうだし
連結数が固定なら短くすっきり書けるからsprintfを使うな でもstrcatやstpcpyの方が速度は早そう
速度(笑)とか言ってる奴が標準関数使うなよw
↑プログラミング作法も知らんのか
本当に速度を求めるのなら作法なんかにこだわってる場合じゃない
>>563 strcpy(), strcat()は複数行になるけど、sprintf()はフォーマット文字列の
存在が気持ち悪いから、俺の感覚だとどっちもどっちみたいな。
sprintf(s, "%s - %s - %s", a, b, c);
みたいな感じだとsprintf()のほうがスッキリ感は圧倒的に上だけど、
単純な連結だと、まあ、どっちでもいいかなって感じ。
>>566 べつに行儀のよさを取るか、スピードを取るかみたいに極端に走らないと
いけないってわけじゃないし。
と言いながら、中途半端な自分をごまかして死んでいくわけですね。
人生には極端に走らなければいけない時がある
571 :
デフォルトの名無しさん :2010/11/03(水) 19:05:34
そもそも、sprintfとstpcpyの速度差が性能に大きな影響を与えるような場所で、sprintfとstpcpyを使ってしまうような開発者のセンスを疑う。
>>572 おお、これはアフィサイトではないな高度情報だ
神と認定してもよい評価べき
高度情報wwwwwww
なんか涙出てきた
組み込みでgcc使ったとき、 printfを自作して組み込んだんだけど上手く動かないことがあった。 逆アセして追っかけるとソースではprintf使ってるのに、 コンパイラが一部のprintfを勝手にputsに置き換えてることが原因だった。 速度的に有利なものをコンパイラが勝手に置き換えてたみたい。 sprintf、stpcpyもコンパイラが勝手に置き換えてくれたりせんもんかね。
>一般の認知的だが、知的だとこのあたり ?????
>>577 strなんとかは、インライン展開とかしない?
>>577 これはダメだろ。
勝手に置き換えるのは最適でも何でもない。
ふざけんな。
>>580 じゃあ最適化させるな。
最適化しろとgccに指示しているのはgccの使用者だ。
日本語が不自由な人なの?
Солодом митре
組み込みで使うときは -ffreestanding を指定しておけばそのような勝手な置き換えは何もしない デフォルトでは -fhosted でホスト環境の標準ライブラリが前提
たしかgccは最適化OFFでもputsに置き換えた気がする。 バージョンによるかもしれんが。明示的にオプションでOFFにできるのかね。 そもそも自作printfならオブジェクトのスコープでは別名にしたほうがいいかも。 使う側でdefineでprintfにするとか、ね。
デフォにするなよな…… 逆だろどう考えても……
その程度の人間が標準関数を置き換えるようと思うな。
>>586 -fno-builtin-printf
かな
590 :
586 :2010/11/03(水) 21:18:28
と思ったら
>>584 で解が。
やっぱりデフォでしたか…。
反対してんのはどうせ一人だけのアホだろ
592 :
デフォルトの名無しさん :2010/11/03(水) 21:58:34
始めまして、C言語初めて2日で、どうしてもわからないことができたので質問させて頂きます float k,d,g,a,Enter; printf("数字を入力してください "); scanf("%d",&k); rewind(stdin); printf("もう1つ数字を入力してください "); scanf("%d",&d); g=k+d; a=(k/g)*100; if( ) printf("\n【%.4f%】",a); else if( ) printf("\n【%.4f%】\n",a); else if( ) printf("\n【%.4f%】\n",a); printf("\nEnterおすと終わりっす。"); rewind(stdin); getchar(); ifの中を50以下の時の表示、51以上60未満の時の表示、61以上の時の表示で作りたいのですが、 ifの中をどう書いて良いのかよくわかりませんorz 後問題は、文字を入力された時にエラーとして文字が入力されています等も表示させたいのですが、どのようにすれば良いのでしょうか・・・ 教えて頂きたいです。
インデントのないプログラムは見ないことになっている
>>592 a <= 50
a >= 51 && a < 60
a >= 61
って、比較対象は a でよかったのか?
それと 60 の時が抜けてる気がする
文字が入力されたときは scanf の戻り値を調べる
>>592 >rewind(stdin);
おもいっきり環境依存なんだが
596 :
デフォルトの名無しさん :2010/11/03(水) 22:14:52
>>594 ありがとうございます^^
比較対象はaですね、60のとき・・そうですね;改善します
>>592 環境依存文字とはなんでしょう?;
>>596 VCでしょ?
gccとかで rewind(stdin); ってやったら未定義の動作になるよ
始めて2日目にそんな話をしてもしょうがあるまい
なあに、自分の環境で動けば問題ない
初心者に間違った知識を教えたらなかなか抜けないぞ
どこでrewind(stdin)なんて書き方を覚えたのかが問題
>>601 おぼえたっていうか、問題文のコピペだろ?
603 :
デフォルトの名無しさん :2010/11/03(水) 22:35:47
>>597 よくわかりませんが、gccというのでやるとダメなのですね
>>601 rewindはscanfが連続して続くときに使えとかなんとかいわれて・・
>>594 さんの
最後の文を見てなかったのですが、scanfの戻り値の設定とはどういうことでしょうか・・??
> rewindはscanfが連続して続くときに使えとかなんとかいわれて・・ なにその投げやりな説明
>>603 gccって言うか、VC以外の環境ではまず駄目
VC独自の拡張だから
606 :
デフォルトの名無しさん :2010/11/03(水) 22:40:40
>>603 「scanf が連続」してないところで使ってるのは何?
初心者なら gcc -Wall -ansi -pedantic が無難じゃないかな。 WindowsならMinGW簡単にインストールできるし。
608 :
デフォルトの名無しさん :2010/11/03(水) 22:44:53
>>604 正直自分でもよくわかってませんwこうしたらこうしろ見たいな感じだったので
>>606 最初に書いたやつは連続してないのに使ってるや、と後から思ったので自分で修正しました><
scanf()のエラーチェックはこういう感じ。 ret = scanf("%d", &n); if (ret != 1) { エラー処理 }
入力ストリームのクリアには何が推奨なの? while (getchar() != '\n') {} とか? scanf("%*[^\n]%*c"); とか?
>>610 確実な方法はない
クリアしているうちに次の新しい入力が入って来てるかもしれないし
C++ならgetlineとstringを使えばほとんど対応できるけど
>>610 scanf()系は読み込みの単位が行じゃないんで、行単位でクリアするとおかしくなる。
>>611 Cではいい方法はないからこそVCで独自拡張されたんだよな
いや、少なくともこの例題だと行単位でクリアするのが正しいだろ
615 :
551 :2010/11/03(水) 23:08:05
>542>551 stpcpyだったんですね。はじめて知りました。 ^ まぁ実装を想像すればNUL文字を走査しないでよいだけ strcatよりは早くなる可能性が高いですね。 >565 たしかに速度が求められるなら、sprintfはアウトかもしれませんが そういう場合はstrcpy,stpcpyもイイかといわれると? 標準関数が使用できない環境なら自作のmemcpy相当を 使うだろうから(str系は自作しないだろうし)、そもそもこんな話にはならないでしょうね。
>>615 stpcpy()は強力だぞ
CPUの未定義命令が生成され、物凄く速い
strcpy()とは全く別物
数行くらいの練習用コードで、エラー入力は考慮しないとか、 エラーがあったら即終わるみたいな感じだったらscanf()でもいいけど、 エラーチェックしろとか、エラーがあったら再入力させろとかって 条件がつくとscanf()だととたんに難しくなるな。 fgets()とか使わせたほうが結局簡単だけど、入門者用のテキスト書くやつって scanf()を使いたがる。
fgets() + sscanf() で当面いいんじゃね
>>618 その組み合わせをどのように使うんですか?
scanf()は融通が利かないので、一度fgets()でバッファオーバーフローを避けつつ sscanf()でバッファを読み取る これだとバッファはそのまま残るので rewind(stdin); とか変なテクは必要なくなる もちろん複数行になると面倒だけど
>>617 入門書だと例外処理を考える必要ないだろ
読む人間がまるっきりわかってないのに
なんだかんだやらせるよりscanf()でやってしまった方が覚えやすいし楽
例外処理やらそのほかのやり方はその次の段階の話
>>619 fgets(buf, sizeof(buf), stdin);
sscanf(buf, "%d", &n);
>>621 だからエラー処理を考えないならいいって書いてるじゃん。
2chに貼られる質問みてると
>>592 みたいにエラーメッセージ出しなさいとか
ループで使って無限ループしましたとか多いじゃん。
それあるな scanf()はスキャンしてエラーを起こすと全く読み込みポインタを進めないので 返却値をチェックしないと無限ループに陥る事が多い
>>622 、どうもです。
ところで、この場合どうなるんですか?
scanf("%d", &n1); // ここで間違って文字を入れた
scanf("%d", &n2); // そのときここはどうなるんですか?
626 :
デフォルトの名無しさん :2010/11/03(水) 23:57:30
実行してから言え
>>625 一行目の入力がストリームに残ったまま次のscanf()に行って、
やはり同じデータを読もうとして同じようにエラーになる。
629 :
デフォルトの名無しさん :2010/11/04(木) 00:07:07
生きろ
この流れワロス
クソしたら腸がはみ出た謝罪と賠償を請求するニダ
シーっと!クソがブイビィブイビィっと出やがった!ジャバジャバ流してやる!
>>627 scanfが成功するとストリームは自動的にクリアされるが、
scanfでエラー発生すると、ストリームが自動的にクリアされないので
自前でクリアしなければならないと。そして、それを正しくクリアするのは意外と大変と
ということで、エラーを考えた場合、scanfを使うのはイクナイと
641 :
デフォルトの名無しさん :2010/11/04(木) 01:04:57
> scanfでエラー発生すると、ストリームが自動的にクリアされないので ん、ungetc でストリームを捏造することが問題なんじゃなかったの?
>>641 いやいやエラー発生してもストリームはそのままなので、エラー対策をしてない
プログラムだと簡単に永久ループに飛び込む
643 :
デフォルトの名無しさん :2010/11/04(木) 01:18:01
エラー発生は非破壊検査できないだろ
もういいや 適当に作って永久ループに飛び込んで原因が分からず一晩悩んで頭禿げろよ
mallocで確保したメモリって exitやmain関数のreturn 0;でプログラムを終了する直前でもfreeで開放した方がいいんですか? いちいち開放するようにしてると冗長になるような気がするんですけど
>>645 プログラムによる
途中で多量のヒープ領域を使い、free()しないとヒープ領域を使い果たして
しまうようなプログラムではfree()しないと動かない
宿題程度でもmalloc()とfree()を対にしないと減点の対象になる事があるし
647 :
デフォルトの名無しさん :2010/11/04(木) 01:55:49
しなくていいよ
無責任なレスだなあ・・・ free()が何のためにあると思ってんだよ
649 :
デフォルトの名無しさん :2010/11/04(木) 01:59:20
メモリリークするときだけfreeすればいいよ
C言語のexit()にはクリーンアップルーチンが通常は組み込まれており、 free()しなくても確かにプログラム終了と同時にmalloc()で使っていた ヒープ領域もろともOSに返却される しかし、途中でfree()しないと動かないプログラムや環境もある事を忘れない事だ
>>646 >>652 なるほど
いま大きな配列を扱うプログラムを使っててその配列をヒープ領域に確保してるんですけど
プログラムの最初から最後まで使うような配列なので何度もmallocを使うっていうことはないです
終了時にはOSが自動的に開放してくれるみたいなんでfreeしなくてもいいかなと思ってたんですけど
やっぱり環境に依存しちゃうんでfreeで開放するに越したことはないんですかね
654 :
デフォルトの名無しさん :2010/11/04(木) 02:08:03
>>650 どした?質問者がきいていることを理解したか?
655 :
デフォルトの名無しさん :2010/11/04(木) 02:08:45
だからしなくていいって
>>651 お前こそもっと勉強しような
メモリリークとfree()はどちらかと言うと無関係だし
malloc()で得たポインタを捨ててしまう事が悪い
それはバグだ
>>653 そういうのはfree()しなくても問題は起きない
しかし作法としては良くない
FILEをfopen()したままfclose()しないようなものだ
659 :
デフォルトの名無しさん :2010/11/04(木) 02:15:04
他の例えで言うと、校内にゴミを巻き散らかして、下校する時に 「掃除のオバチャンが綺麗にしてくれるから片づけなくていいや」と言ってるようなもん 行儀悪いだろ?確かに掃除のオバチャンが明日までには片づけてくれるだろうがね
661 :
デフォルトの名無しさん :2010/11/04(木) 02:17:16
この程度の事で迷ったり原則論を声高に主張するような奴はもっと楽な言語を使ってれ って事だわ
663 :
デフォルトの名無しさん :2010/11/04(木) 02:20:06
GC言語使った方が良いね
FILEのfopenについては、exit時に全てcloseされることが仕様で定められている。 しかしexitで自動でfreeするなどという仕様はない。 単にその実装でそうなっているだけ。
>>661 お前ウザいから無視
前にもこういう馬鹿な奴がいてfj.comp.lang.cで半年にもわたって
malloc()とfree()の議論が交わされたものだ
結論はmalloc()したらfree()しましょうという事で決着している
はい終わり
後は何を言われても返事しませんので
せいぜい独り言で自分が正しいと思う事でも明日の朝まで長々と
書いていればいいよ
実務に携わった経験のない奴はこれだから困る
おやすみ
667 :
デフォルトの名無しさん :2010/11/04(木) 02:33:03
>>666 終了前にfree()いれても実行の度メモリが減少していくことがあります
はい論破
669 :
デフォルトの名無しさん :2010/11/04(木) 02:43:28
いや、絶対的に減るかどうかじゃなくて、 freeした場合としない場合の相対的な話をしているんじゃないの?
終了後の状態を比べてどうすんだよ メモリリークは実行中に発生するから問題なんだろ
ヒープと仮想記憶がごっちゃ
だから終了前にfreeするかどうかだろ 普通のOSじゃ必要ないから
>>572 のサイトにすべて載っているな
しかもこの著者は独自研究最高成果としてdmallocという割り付け機構を実装した
まだ発見されていないAPIもある
宣伝うざいしね
677 :
デフォルトの名無しさん :2010/11/04(木) 09:22:38
ポインタの概念がわからないんだけど いまは一つ一つどうすればいいのかを調べて 1個1個覚えていっていくって感じ そういうのでいいの?
678 :
デフォルトの名無しさん :2010/11/04(木) 09:26:54
オナニーなう
679 :
デフォルトの名無しさん :2010/11/04(木) 09:28:27
誤爆なう
>>675 HTMLもまともにかけてないのにCなんかできるの?
681 :
デフォルトの名無しさん :2010/11/04(木) 09:41:21
エッチなまうまう?
>>680 HTML書けないとC言語できないんですか
683 :
デフォルトの名無しさん :2010/11/04(木) 09:45:19
最強のライブラリって何?
684 :
デフォルトの名無しさん :2010/11/04(木) 09:51:30
HP作ったのが2000年で10年もやってんだから HTML中級者以上の実力あるに決まってんだろ ただ雑にやっているだけ
高度情報に嫉妬してる奴がいるだけだ
688 :
デフォルトの名無しさん :2010/11/04(木) 10:04:58
ガチでやったらヒョードルより俺の方が強い
689 :
デフォルトの名無しさん :2010/11/04(木) 10:11:55
ぽいんぽいんポインタッチ いや〜ん
ガンダムのOSはCで書いてますか?
691 :
デフォルトの名無しさん :2010/11/04(木) 10:14:40
ダルビッチ・サセコ
#だよ
693 :
デフォルトの名無しさん :2010/11/04(木) 10:18:07
そりゃぁ、モビルスーツは最強だろうよ。
バカだなぁテム・レイはCOBOLerに決まってるじゃないか
低脳が集まるスレはここですか
697 :
デフォルトの名無しさん :2010/11/04(木) 12:24:13
めでたく仲間入りです
ゆとりなので、黙って読めません...
>>667 のようなアホはもしC++を使ったら、「デストラクタなんていらんよ」
「スマートポインタ?そんな物もいらね」と言い出しかねない馬鹿
お前ら暇なの?
実は今日は大学休みなんだ
わるいな。このスレ3人用なんだ。
じゃガンダムの登場キャラのイメージに合う使用言語、PCを決めようぜ。 アムロ・レイ : PC9800NX / C++ テム・レイ : PC8801mkII / COBOL
706 :
デフォルトの名無しさん :2010/11/04(木) 14:07:33
>>701 また別の話を持ち出してくるバカがひとり
707 :
デフォルトの名無しさん :2010/11/04(木) 14:17:08
男は黙ってFORTRAN
>>705 0083に出てくるが、アナハイムのPC環境ってすごいよな。
キーボードとかスゲー音w
パプテマス・シロッコ : Amiga 500 / Haskell
パプテマスさまー
ガンダムなんてわかんねーよおっさんども
ガンダムSEEDで語りやがれ
714 :
デフォルトの名無しさん :2010/11/04(木) 16:52:28
キラ様は賢いからjava
キラ様はブートストラップからやるからアセンブラだろ
716 :
デフォルトの名無しさん :2010/11/04(木) 17:32:53
cpuはなんだ? インテル入ってる?
デュアルコアだな
今時アセンブラって頭禿げるがな(´・ω・`)
720 :
デフォルトの名無しさん :2010/11/04(木) 17:45:42
生きる為にやりました。 今は反省していない
>>719 いくらなんでも架空のレスをでっち上げるのはよくないな
>>719 あれ、このサイト意外と神じゃね・・・?
>>719 いいサイトをありがとう
ここのライブラリすごいな、boost超えるんじゃね時間の問題
自作自演ウゼェ(´Α`)
嫉妬ウゼェ(´Α`)
で?素数の宿題は終わったのかよ 終わったんならガンダムネタに付き合えよ
嫉妬だと? (・m・ )ぷ
>>719 これだけの高度情報を収集した著者は偉大だな
俺は宇宙プログラムにも関わっているんだがこのサイトは話題の人気で実用性だった
高度情報wwwwwww
ハマーン・カーンはPhytonかな。PCはAlienware M17xって感じ
733 :
デフォルトの名無しさん :2010/11/04(木) 18:24:12
話題の人気?
このサイトは話題の人気で実用性だった ってキチガイだなw
宇宙プログラムってのも中々
まあそれなりに高度なプログラマになると宇宙を複合する作業に携わることになるよね
>>736 お前は分かっているな。
俺くらいになると例えば宇宙ロケットのエンジン部分のデータ結合は暗号化しなければならないが
暗号化したら復号化ができることが最低必要条件となるから
>>719 のサイトで暗号理論や記号理論、数理統計情報数学等を
学ぶ必要のあるから、俺は参考ンしてnる・
あ痛たたた
シャアはDelphi
随分とクソスレになったな。
742 :
デフォルトの名無しさん :2010/11/04(木) 19:44:51
>>741 あ?入門者用の質問スレでなにいってんだ?
質問者を馬鹿にしようとする低能が集まるスレだからな
>>666 関係ないけどニュース系の板で議論があると
「こんなもん専門版じゃとっくに決着ついてるのに、やれやれ」
みたいなこというヤツいるけど、それと同じものを感じた。
746 :
デフォルトの名無しさん :2010/11/04(木) 20:53:49
freeしてもすぐにOSに返されるわけではないので 終了前でもfreeすべき
747 :
デフォルトの名無しさん :2010/11/04(木) 20:55:54
言ってる本人は専門版とかfjにすごい権威を感じてるんだろうけどな。
749 :
デフォルトの名無しさん :2010/11/04(木) 21:00:54
749 = 3^6+20
750 :
デフォルトの名無しさん :2010/11/04(木) 21:04:31
/ ヽ ど ん な か な し い こ と が あ っ て も . i _,,_ル,,rョュ 、 i | ィ rっフ , 弋ミア |r, _| "''"~ ハ ハ .i;{ や せ が ま ん で も い い } ; / " ' ヽ |j λヽ r―''"入 | `"i 廷廾ニツ j ひ の あ た る ば し ょ で i、  ̄ .ノ ` ー ,,___,,. / .! .i お じ ぎ す る の だ .. |. | .! .i ._,,,‐''^^'''''> 、....,,,,..,,_ ! .;! .,/'゙`,_ .,ノ そ う た ん ぽ ぽ の よ う に \ .⌒\ │ .|!.,,iミ/ ._,,,./′ i '^'''‐、..゙'hノ| .|厂 . ̄′ .ヽ_ ゙メリ| .|  ̄ ̄ |. | ._,,,‐''^^'''''>
751 :
デフォルトの名無しさん :2010/11/04(木) 21:32:14
細切りを一個づつ解放するよりも ばっさりとOS任せでブロックごと解放するほうが効率がいい事くらいわからないとは
753 :
デフォルトの名無しさん :2010/11/04(木) 21:46:08
754 :
デフォルトの名無しさん :2010/11/04(木) 21:54:52
おすすめのフォント教えてください
755 :
デフォルトの名無しさん :2010/11/04(木) 21:59:49
カスニートばっか
カスニートってなんか速そう。
金曜日の夜 土曜日の昼 土曜日の夜 日曜日の昼 日曜日の夕 日曜日の夜 月曜の朝 ↓ ↓ ↓ ↓ ↓ ↓ ↓ ┃:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ∧||∧ ∧ ∧ ∧∧ ∧ ∧ ┃:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ( / ⌒ヽ (・∀・) ∩∀・) (・∀・)∩ ┃:::∧∧:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: | | | / ⊃⊃ ヽ ⊃ノ /⊃ / ....┃:::('д` )::::::::::::::∧∧::::::::::::::::::::::::::::::::::: ∪ / ノ 〜( ( ヽ )つ 〜( ヽノ ......┃:::と ヽ::::::::: ('д` ):::::::( )⌒ヽ;:::::::::: | || (/(/' (/ し^ J ......┃:::⊂,,_UO〜:::(∩∩ ):::::|/.|/uと )〜::::: ∪∪
名:カスニート・ヘルセゴビナ 性別:男性 概要: ティターンズのモビルスーツパイロット。 グリプス戦役時、バスク・オム直属の部隊に所属。 独特なカラーリングを施したRMS-106 ハイザックに搭乗。
762 :
デフォルトの名無しさん :2010/11/04(木) 23:46:21
おやすみ〜
iTunesが おきあがり なかまに なりたそうに こちらをみている! なかまに してあげますか? ┌───┐ │⇒はい│ │いいえ│ └───┘ iTunesが なかまに くわわった! QuickTimeが なかまに くわわった! Bonjour for Windowsが なかまに くわわった! Apple Mobile Device Supportが なかまに くわわった! Apple Software Updateが なかまに くわわった! MobileMeが なかまに くわわった! Apple Application Supportが なかまに くわわった! Apple Software Updateが Safariを よびよせた! Apple Software Updateが iPhoneソフトウェアを よびよせた! :::::::::::.: .:. . ∧_∧ . . . .: :::::::: :::::::: :.: . . /彡ミ゛ヽ;)ヽ、. ::: : :: ::::::: :.: . . / :::/:: ヽ、ヽ、i . .:: :.: :::  ̄ ̄ ̄(_,ノ  ̄ ̄ヽ、_ノ ̄ QuickTime をアンインストールしますか? >はい なんとiTunes はしんでしまった!
データ抽象を優しく説明お願いします
>>764 Cでいえば、例えばFILE型の使い方が典型例
FILEをどうやって扱うかというと、
もちろんfopenとかでFILE型へのポインタを得て、それに対して
freadとかfwriteとかやって、最後にfcloseで閉じるという流れがまあ普通だろう
ここで注目して欲しいのが、
「使い手はFILE型の実装を知らなくてもいい」という事実
まあ多くの実装では構造体なのだろうが、そんなことはどうでもいい
なぜなら具体的な処理はfreadとかがやってくれて、我々はFILEの実装に直接触る必要がないから
このようにデータを操作(Cでいう関数)でラッピングして、
データ自体の細部(実装)を隠してしまうことをデータ抽象という
767 :
デフォルトの名無しさん :2010/11/05(金) 06:28:01
キーボードから'A'の入力を受けるまで1秒間隔で'B'を表示し続けるにはどうしたらいいでしょうか
環境依存なのでなんとも
>>769 すぐそうやって逃げるのはヘタレ。
If you have no idea 黙ってろ。
環境依存なのでなんとも
vcなら楽勝だがgccだとメンドイな
はぁ? おまえが低能なだけじゃん。
775 :
768 :2010/11/05(金) 08:55:27
環境はLinuxのgccです
unix kbhitでぐぐれ
>>765-766 参考書読んでも分からなかったので聞いてみましたが感覚が掴めたように思います。
非常に詳しい解説ありがとうございました。
778 :
デフォルトの名無しさん :2010/11/05(金) 11:11:12
パラメータ2のポアソン分布に従う疑似乱数はどうやって発生させるんですか?
>>778 Cの入門で扱うような内容じゃないので乱数スレにでもどうぞ。
#include <ncurses.h> int main(void){ initscr(); nodelay(stdscr, TRUE); while(1) { printw("B"); refresh(); if(getch() == 'A'){ break; } sleep(1); } endwin(); return 0; }
781 :
あ :2010/11/05(金) 13:18:01
#defineを使用した組み込み用プログラムで、 #define reset() config = 0x00;\ state = 0x32 と宣言した場合、 int main (void) { reset(); } と記述すれば int main (void) { config = 0x00; state = 0x32; } という動作をしますか?
そう解釈はするでしょうけれど、コンパイルできないでしょうから動作はしないような。
mainかグローバルスコープあたりにconfigとstateが宣言されてたら動くんじゃない?
プリプロセッサは int main(void) { config = 0x00;state = 0x32; } こう展開するんだろうけどな。 展開後コンパイルできるコードかどうかは config と state の宣言があるかどうか次第。
間違い。 state の前の空白が落ちてた。 今回の件では瑣末事なので忘れてクレイ
786 :
781 :2010/11/05(金) 14:11:08
今回使用したconfigとstateは既に宣言されているものです、わかりにくくてすみません。 動作するということで、了解しました。 ありがとうございます。
787 :
デフォルトの名無しさん :2010/11/05(金) 14:26:45
お前らは最初ポインタって聞いたときマウスのポインターが思いついた世代ですか?
788 :
デフォルトの名無しさん :2010/11/05(金) 14:35:25
ジュワッ
マクロ内に外部の宣言に依存するものを入れるのは気持ち悪い
790 :
デフォルトの名無しさん :2010/11/05(金) 14:41:32
そうでもない
マクロ乱用とかきっしょいわ
組み込みだとスイッチ類のBIT指定マクロがぎっちりつまったヘッダーが普通にあるよ OSなんて乗ってないから直接レジスタを操作して信号送ることになる
この場合は乱用が適切だな。敢えて濫用と言い換えることもない。
>>780 それだと押してからも一回表示されちまから順番変えろ。
再提出。
こういう話になると必ず
>>792 みたいに組み込みとか場違いな話を持ち出す馬鹿が出てくるよね
議論を自分のステージに持って行きたいのさ
どこのスレでも語尾に「。」をつけてるから同一人部ではないかと思ってる
そこに気付くとは。 やはり天才か。
私は同一人部だったのか。
人部ェ
何も句読点だけで判断している訳ではないだろう。対象人物のよく使う単語なり文の使い回しなど考察する対象はいくらでもあるとは思わないかね?
そうだね。はい次。
803 :
デフォルトの名無しさん :2010/11/05(金) 17:32:35
フラグツール作りたい
804 :
デフォルトの名無しさん :2010/11/05(金) 17:34:08
京都人は滅ぶべき
*p[] ポインタの配列 (*p)[] 配列へのポインタ
そんなことはみんな知ってるし聞いてない
こんなのに釣られる人っているんだw
日本は和人の国である。 和人系じゃないのは日本人でない。
かずひと
&p[] (&p)[] これはなーに
812 :
デフォルトの名無しさん :2010/11/05(金) 17:49:19
813 :
デフォルトの名無しさん :2010/11/05(金) 18:24:23
>>789 assert とかどうやって作るんだよ
マクロをまともに使ったことが無い奴に限って マクロを否定する 不思議
はいはい不思議不思議
マクロが必須なら他の言語はどうなるんだよ
ビョーンwwwwwwwwwwww
818 :
デフォルトの名無しさん :2010/11/05(金) 18:48:08
使えるものは使うだろ? なにいってんだ?
はいはい組み込みだと組み込みだと
プログラマが欲しいのはLispのマクロであって、Cのマクロじゃないから
組み込みだとマクロを使わなきゃやってられない メモリアドレスを即値で指定するなんて日常茶飯事だからな C言語は組み込みのための言語だし
マクロを関数のように使うのは止めて頂きたい。 とくに関数のようなマクロを入れ子で使って階層の深い場所でreturnとかマジ簡便。
簡便ならいいじゃないか。
上条のミツバチを思い出した。
ならぬ堪忍するが堪忍 お前は簡便おいらは勘弁 マクロは入れ子でマグロは卵 Yeah!
>>765 FILE 構造体以外によい例がない件について
簡便って簡単に大便・小便できるってことだよね 階層の深い場所でreturnでも、苦しまずにすぐに出れるってことで 超健康的で良いよね
>>822 意味がよく分からんので補足してくれ。
min,max,absとかもだめなの?
まあ中身が1行のやつは許可してやるよ
831 :
デフォルトの名無しさん :2010/11/05(金) 20:56:06
カウント文の使い方をだれか説明してください
for (i = 0; i < num; i++) { }
草食系とかマジ簡便
ワロタ
マクロは型を定義するのに必要 #define UInt unsigned int とすればunsigned int型に別名UIntを付けることができる
836 :
768 :2010/11/05(金) 22:43:10
>>837 typedefがなかったらどうするの?
無意味すぎる。
無意味ってw
マクロがいやならマクロが無い言語使えばいいじゃん
C++なんてどうです?
>>827 確かに多くはないだろうが、無いわけじゃない
思いつくのはsetjmp/longjmp
include や define一段だけ使ってるうちならいいけど 深みにハマるとプリプロセッサは超難解ミニ言語だからね
正則言語にすら及ばず、置き換えしかできないものを「言語」と言っちゃうかw
データベース言語とかマークアップ言語とかありますので
>>848 それマクロじゃないし
お前「言語」って何かわかってないだろ
↓ググれ
853 :
デフォルトの名無しさん :2010/11/06(土) 00:14:28
やーい、答えられねーw
854 :
デフォルトの名無しさん :2010/11/06(土) 00:15:09
文字がない言語が意外に身近にあるわけだが
>>852 データベース言語とかマークアップ言語とかありますので
>>854 そういう要素を「文字(アルファベット)」って言うんだよ
データベース言語とかマークアップ言語とかありますので
データベース言語とかマークアップ言語とかありますので
データベース言語とかマークアップ言語とかありますので
お前「言語」って何かわかってないだろ
データベース言語とかマークアップ言語とかありますので
お前「言語」って何かわかってないだろ
データベース言語とかマークアップ言語とかありますので
そんなことはみんな知ってるし聞いてない
データベース言語とかマークアップ言語とかありますので
お前「言語」って何かわかってないだろ
データベース言語とかマークアップ言語とかありますので
データベース言語とかマークアップ言語とかありますので
データベース言語とかマークアップ言語とかありますので
データベース言語やマークアップ言語ってマクロなの?
データベース言語とかマークアップ言語とかありますので
データベース言語とかマークアップ言語とかありますので
データベース言語とかマークアップ言語とかありますので
>>875 データベース言語とかマークアップ言語とかありますので
マクロ言語とかありますので
データベース言語とかマークアップ言語とかありますので
データベース言語とかマークアップ言語とかはマクロなので
マクロ言語とかありますので、マクロは言語じゃないので
>>875 データベース言語とかマークアップ言語とかありますので
C言語のマクロはマクロ言語なので
データベース言語とかマークアップ言語とかありますので
C言語のマクロはデータベース言語とかマークアップ言語なので
データベース言語とかマークアップ言語とかありますので
データベース言語とかマークアップ言語とかありますので
>>888 データベース言語とかマークアップ言語とかありますので
データベース言語とかマークアップ言語とかありますので
データベース言語とかマークアップ言語とかありますので
データベース言語とかマークアップ言語とかありますので
データベース言語とかマークアップ言語とかありますので
結局これで埋めるのか。よほど悔しかったんだな
データベース言語とかマークアップ言語とかありますので
ええ、悔しくて夜も眠れません。
>>894 データベース言語とかマークアップ言語を馬鹿にするなよ屑
データベース言語とかマークアップ言語とかありますので
データベース言語とかマークアップ言語とかありますので
データベース言語とかマークアップ言語とかありますので
データベース言語とかマークアップ言語とかありますので
データベース言語とかマークアップ言語とかありますので
Cのマクロしか知らない奴は、あまりマクロがどうとか一般論的に言うなよ
なんにしてもCのマクロは少し機能が足りない
>>903 は一体どんなマクロを見せてくれるのでしょうか
データベース言語とかマークアップ言語とかありますので
データベース言語とかマークアップ言語とかありますので
データベース言語とかマークアップ言語ってCのマクロになんか関係あるの?
置き換えも、AならばBである。というもっとも単純な論理型言語と言えなくもないかもしれないだろ
データベース言語とかマークアップ言語とかありますので
>>911 言語であることは正しいが、論理型言語という言葉は誤解を生むぞ
>>911 論理型言語ってのはPrologみたいなのを指すんだけど、Cのマクロとはちょっと違う気がする
あと、上でなんか誤解している人がいるがCのマクロは正則言語だよ
>>914 データベース言語とかマークアップ言語とかありますので
917 :
914 :2010/11/06(土) 00:58:00
間違えた Cの仕様書を見る限りCのマクロはCFLと言ってもよさそうだね;
そりゃ論理型言語になるように機能追加してったら論理型言語になるだろうよ
文字列結合マクロってコンパイラによってできないのがあるんだっけ?
関数型でもいいわけで LISPのマクロには敵いません
誰かCにlambda式を追加してあげなよ。かわいそう
と思ったらあった。プログラミング言語C with lambda。
>>924 C++ならBoostがあるが、C言語にはそういうライブラリないの?
Cは関数オブジェクトをもっと扱いやすくしてくれたらいいのに 無名関数とか使えたら便利
組み込みではマクロ使うのは割と普通だよ
#define int long
List<int> a; #pragma scala a = for (x <- 0 until 10) yield (x, x * x); #pragma end scala
931get
あずにゃん
>>715 あの統合開発環境の画面から察して、
LabVIEWかVisualAdaだろ。
もしかしたらMindstormかもしれないけど。
ちなみにOSを書き換えた訳じゃないぞ。
台詞を聞けば分かるように、パラメータの最適化と
制御モジュール切り捨てて軽くしただけだ。
制御モジュール捨てたせいで、キラ以外に扱えない機体になったけどな。
簡単に言うと RegSeeker ってことかw
ウニョ
ウニョ
あずにゃん
ペロペロ
#define INC(x) ( (x) = (x)++ + ++(x) ) int n = 0; n = INC(n) + 1;
ウニョ
荒らしは運営に通報した!
ウニョ
ビットシフトはなんの役に立つのでしょうか?
埋め
mallocで確保したメモリが本当に初期化されていないか この目で確かめてみたいのですが 何か良い方法ありませんか?
>>946 デバッガで見るか、printf()で出してみるか。
そもそも初期化って意味わかってんのか?
>mallocで確保したメモリが本当に初期化されていないか なんかワロタww
不定値が常に0だったとしても違反ではないんだぞ
フフフフフフフフフフフフフフフフ
どっかで「malloc()でとったメモリ、初期化してねーのかよ、ど素人かよ」とか 煽られてムカついてなんとか言い返したいのかなとか、想像してみる。
>>952 だとしてもそんな処理系依存の答えを返したらもっと笑われるだろ
>>955 そこまで分かってたら、初期化されていないか目で確かめたいって発想がわかないと思う。
┏━━━━━━━━━━━━┓ ┃初期化しませんか? ┃ ┃ ┃ ┃ [はい][いいえ]┃ ┗━━━━━━━━━━━━┛
値を確認することは出来るかもしれないが 肉眼で確認するのは難しいんじゃないか?
たまたま全部0だった場合に何て言い出すのか気になるw
初期化はされるものじゃなくてするものだよ。
初期化はするものじゃなくてされるものだよ。
この速さなら言える!初期化!
最近はセキュリティー上の配慮もあって 0で初期化されたメモリを返す処理系も多いけどな。 Windowsも初期化されたメモリを割り当てるんじゃ無かったけっけ?
だから何?
だからそれは初期化じゃねんだってば。
>>967 最近はセキュリティー上の配慮もあって
0で初期化されたメモリを返す処理系も多いけどな。
Windowsも初期化されたメモリを割り当てるんじゃ無かったけっけ?
んなことない
>>969 初期化されないOSなんてセキュリティホールそのものだから早く捨てろよ
バカが来たようだ
>>968 いま見てみたらgccでもvcでも初期化されてないようだ。
こんな屁理屈言うってことは
>>952 みたいな感じなんだろうな。
次スレ立てます
立派なのが起ちました
977 :
デフォルトの名無しさん :2010/11/06(土) 23:04:55
Win32APIでOpenProcess()があるけど、GCCでそれ相当の関数ってありますか? Window環境とLinux環境で別プロセスのメモリ内容を参照したいんですけど、 Windowsは、OpenProcess()使えば出来そうなのですが、 Linuxでの手段が思い当たりませんでした・・・
978 :
デフォルトの名無しさん :2010/11/06(土) 23:05:42
fork()
ptrace(2)
mallocはメモリを確保する 確保=初期化なんだから、初期化されてると見なしてもいい
埋め
>>977 ptrace で ATTACH して /proc/<プロセスID>/mem を open して seek して read するといいらしいよ
データベース言語とかマークアップ言語とかありますので
埋め
986 :
デフォルトの名無しさん :2010/11/06(土) 23:33:01
教えて頂き、ありがとうございます。 試してみます!
987 :
946 :2010/11/06(土) 23:35:50
>>949 セキュリティプログラミングのPDFを読んでいてた。
mallocで確保されたメモリが初期化されていなかたために、
脆弱性を作り出してしまったって記事を読んだ。
なので、本当にmallocで初期化されたメモリが初期化されていないか確かめたかったわけ
>>980 それってさ、もっと高級な言語の話じゃないの
>>987 >なので、本当にmallocで初期化されたメモリが初期化されていないか確かめたかったわけ
初期化されていないデータがどのようなものか調べないと意味がない。
初期化されないなんてのははっきりいって規格にも書いてあること。
ウニョ
ピャピャピャー
データベース言語とかマークアップ言語とかありますので
だから、0クリアされてたとしても それは初期化とはいえんだろ。 初期化の意味わかってんのか?
callocってのがなかったっけ
コピペの奴はそうとう悔しかったんだな
えっ
calloc使え
Haskellが1000get
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。