トップページ⇒tech
1001コメント240KB

C言語の質問スレッド<42>

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
C言語に関する質問はここでしてください。

問題をちゃんと切り分けて、Cの話かそうでないか洗ってから質問してくれ。
というより、聞く前に一応 Web で検索しろ。
コンパイラを探してるなら >>2 を見ろ。
過去ログ(DAT落ちあり)なら>>3-100あたりにあるかも。

GUIとか、C標準でできない事の質問は使ってる開発環境のスレに逝ってくれ。
ソース丸投げ、宿題、書籍 は専門の別スレがあるからそこへ逝ってくれ。

未定義・処理系依存ネタはご遠慮ください。
誰かが(故意にではなく)それらの書き込みをしても、いちいち突っ込まないでください。
規格オタクはこのスレッドには必要ありません。論争したかったら独自にスレッドを立ててそこでやってください。


C FAQ 日本語訳
http://www.catnet.ne.jp/kouno/c_faq/c_faq.html
comp.lang.c FAQ(英語の原文)
http://www.eskimo.com/~scs/C-faq/top.html
Cプログラマ必読 ・プログラミング言語C(通称 K&R)
http://www.amazon.co.jp/exec/obidos/ASIN/4320026926/
推薦図書/必読書のためのスレッド PART6
http://pc3.2ch.net/test/read.cgi/tech/1033207156/


前スレ <41>
http://pc3.2ch.net/test/read.cgi/tech/1036876790/
0003デフォルトの名無しさんNGNG
40 http://pc3.2ch.net/test/read.cgi/tech/1036673739/
39 http://pc3.2ch.net/test/read.cgi/tech/1036409391/
38 http://pc3.2ch.net/test/read.cgi/tech/1035729526/ (待機中)
37 http://pc3.2ch.net/test/read.cgi/tech/1035623265/ (待機中)
36 http://pc3.2ch.net/test/read.cgi/tech/1035211039/ (待機中)
35 http://pc3.2ch.net/test/read.cgi/tech/1034337064/ (待機中)
34 http://pc3.2ch.net/test/read.cgi/tech/1033240509/ (待機中)
33 http://pc3.2ch.net/test/read.cgi/tech/1032606064/ (待機中)
32 http://pc3.2ch.net/test/read.cgi/tech/1031905402/
31 http://pc3.2ch.net/test/read.cgi/tech/1031340950/
30 http://pc3.2ch.net/test/read.cgi/tech/1030786546/
29 http://pc3.2ch.net/test/read.cgi/tech/1029605182/
28 http://pc3.2ch.net/test/read.cgi/tech/1028495798/
27 http://pc3.2ch.net/test/read.cgi/tech/1027160374/
26 http://pc.2ch.net/tech/kako/1026/10260/1026048820.html
25 http://pc.2ch.net/tech/kako/1024/10249/1024918442.html
24 http://pc.2ch.net/tech/kako/1024/10240/1024033400.html
23 http://pc.2ch.net/tech/kako/1022/10224/1022402165.html
22 http://pc.2ch.net/tech/kako/1022/10224/1022402165.html
21 http://pc.2ch.net/tech/kako/1022/10220/1022045622.html
0004デフォルトの名無しさんNGNG
20 http://pc.2ch.net/tech/kako/1021/10214/1021459016.html
19 http://pc.2ch.net/tech/kako/1020/10207/1020756993.html
18 http://pc.2ch.net/tech/kako/1020/10202/1020260813.html
17 http://pc.2ch.net/tech/kako/1019/10193/1019372139.html
16 http://pc.2ch.net/tech/kako/1018/10184/1018453690.html
15 http://pc.2ch.net/tech/kako/1016/10165/1016519243.html
14 http://pc.2ch.net/tech/kako/1015/10152/1015286974.html
13 http://pc.2ch.net/tech/kako/1013/10139/1013990673.html
12 http://pc.2ch.net/tech/kako/1012/10123/1012348974.html
11 http://pc.2ch.net/tech/kako/1009/10094/1009499565.html
10 http://pc.2ch.net/tech/kako/1008/10083/1008300863.html
9 http://pc.2ch.net/tech/kako/1007/10072/1007272267.html
8 http://pc.2ch.net/tech/kako/1005/10058/1005811510.html
7 http://pc.2ch.net/tech/kako/1005/10058/1005811510.html
6 http://piza2.2ch.net/tech/kako/999/999617524.html
5 http://piza2.2ch.net/tech/kako/994/994908590.html
4 http://piza.2ch.net/tech/kako/992/992357382.html
3 http://piza.2ch.net/tech/kako/989/989929288.html
2 http://piza.2ch.net/tech/kako/979/979529893.html
1 http://piza.2ch.net/tech/kako/967/967985026.html
0005デフォルトの名無しさんNGNG
>>1
オレに聞け!が伝統だったのに…
まあ、どうでもいいけどさ。
0006デフォルトの名無しさんNGNG
>>5
まあ、1が馬鹿ってことで。
0007デフォルトの名無しさんNGNG
>>1
> 未定義・処理系依存ネタはご遠慮ください。
> 誰かが(故意にではなく)それらの書き込みをしても、いちいち突っ込まないでください。
> 規格オタクはこのスレッドには必要ありません。

はあ?
個人的な好みで勝手に禁止事項作るなボケ!
このスレは未定義ネタで食わしてもらってんだぞ。
0008デフォルトの名無しさんNGNG
> 未定義・処理系依存ネタはご遠慮ください。
> 誰かが(故意にではなく)それらの書き込みをしても、いちいち突っ込まないでください。
> 規格オタクはこのスレッドには必要ありません。論争したかったら独自にスレッドを立ててそこでやってください。
つまらない自治オタクもいらないな。
まぁ、過去ログを纏めたことだけは感謝する。

前スレの
> 上記を守らない書き込みをした場合、その結果は禿しく未定義とする。
が、俺はC的で秀逸だと思ったのだが...。
0009デフォルトの名無しさんNGNG
>>7
お前らのせいであっという間にスレを使いきってしまうんだろうが。
0010デフォルトの名無しさんNGNG
最近のCスレは だいぶ厨房が多いな。
日下部ほどではないけども。
どこかの雑誌にでも出たのだろうか。
宿題丸投げとかも増えたし。

突っ込まれたらすぐに「ネタ」ってことにしたがるし。
0011デフォルトの名無しさんNGNG
>>1
> 誰かが(故意にではなく)それらの書き込みをしても、いちいち突っ込まないでください。

親切にバグを教えてやってるんだろうが。
0012デフォルトの名無しさんNGNG
ビット演算子について教えてください。
どんなときに使うとメリットがあるのでしょうか?
(単純に2の倍数の割り算とかは辞めてください。)
0013デフォルトの名無しさんNGNG
ビット演算子??
0014デフォルトの名無しさんNGNG
とりあえず、次スレ使い切るまでsage進行でいこう。
1を叩くのは、次スレが終わるまでってことで。
0015デフォルトの名無しさんNGNG
このスレの寿命:推定3日間
0016デフォルトの名無しさんNGNG
>>9
未定義ネタ禁止にしたら商売上がったりじゃねーか。
こちとらボランティアで書き込みしてるんじゃないんだぞ。
0017デフォルトの名無しさんNGNG
お!?
早速論争か!?
0018デフォルトの名無しさんNGNG
せめて900越えてから、新スレ作ればいいのに。
1はよっぽど自分でスレ立てをやりたかったんだな。
0019デフォルトの名無しさんNGNG
>>18
漏れもそんな気がした。
0020デフォルトの名無しさんNGNG
つーか1出てこいや。
0021デフォルトの名無しさんNGNG
>>18
http://pc3.2ch.net/test/read.cgi/tech/1036876790/859

これ、そろそろ立ててくれという意味じゃなかったのか(;´Д`)
002221 1NGNG
>>20
なんですか?
0023デフォルトの名無しさんNGNG
くだらないことで言い争う厨房が増えてきたんだから、論争はさけられないでしょ。
0024デフォルトの名無しさんNGNG
議論はお互いの知識の交換なのだから悪いことではないと思うが。
0025デフォルトの名無しさんNGNG
こんなスレの立て方最低。
0026デフォルトの名無しさんNGNG
質問スレで論争していると初心者が質問しにくくなるかもな。
0027デフォルトの名無しさんNGNG
>>5
同意。オレに聞け!がよかったのになぁ。
あと1の『俺は28才(以下略)』とかはもう無いのか・・・?
個人的にはあれ好きだったんだが・・・

スレタイもなんかレベルが下がってる気が・・・
0028デフォルトの名無しさんNGNG
             ∧         ∧               ###
            / ヽ        ./ .ヽ             /#####ヽ
           /   `、     /   .`           /  ##### \
          /       ̄ ̄ ̄    ヽ          /   #####  ヽ
          l:::::::::              .l       /    #####   ヽ
         |::::::::::  -==・-    -==・-  |      |          ::::::::: :::::::|
         .|:::::::::::::::::   \___/    |      |  -・==-   -・==- :::::::::|
          ヽ:::::::::::::::::::  \/     丿      |    \___/  :: :::::::|
          ヽ:::::::::::::::::        /       ヽ      \/    ::::::::::|
     ____>:::::::::::::::::       <_        ヽ        ::::;;;::::::::丿
    /:::::::::::::::::::::::: :::::::::          /⌒ヽ⌒、⌒、⌒、      ::::::::: :<___
    |::::::::::::;;;;;;;;;;;;;:::::::::::::::        / /ヽノヽノヽノヽノ       :::::::::::::  :::::::: :::ヽ
   |::::::::::::::::::::::::            /  /:::::::: :::::::::::::::::::::           ::::::::
          論争論争いこうか?             いいねぇ〜
0029デフォルトの名無しさんNGNG
まあ、なんだかんだいいつつ、質問+論争スレになるんだけどね。
論争ってのは大抵質問がきっかけになることが多いかんね。
0030デフォルトの名無しさんNGNG
age
0031デフォルトの名無しさんNGNG
are
0032デフォルトの名無しさんNGNG
新スレおめでとうございます。 
 つきまして、ユーザーが指定した数を
カウントする関数を教えてください。
i2=3;
j2=4;
ij=i2*j2;
if((str1=(int**)malloc(sizeof(int*)*i2))==NULL){
printf("メモリー確保の失敗:1");
exit(1);
}
for(i1=0;i1<i2;i1++)
if((str1[i1]=(int*)malloc(sizeof(int)*j2))==NULL){
printf("メモリー確保の失敗:2");
exit(1);
}


for(i1=0;i1<ij;i1+=j2){
putchar('\n');
for(j1=0;j1<j2;j1++){
printf("%c",str1[i1/j2][(len++)%i2]=('A'+i1+j1));
}
}
putchar('\n');
for(i1=0;i1<i2;i1++){
putchar('\n');
for(j1=0;j1<j2;j1++)
printf("%3d",str1[i1][j1]);
}
0033デフォルトの名無しさんNGNG
ユーザーが指定した数をカウントする関数てなによ?
もっと具体的に書けねぇの?
その訳分からんプログラムはなんだよ?
新手の荒らしか?
この手のネタにはもううんざりなんだよ
0034デフォルトの名無しさんNGNG
>>32
ごめん、何がしたいのかまったくわからない。
0035デフォルトの名無しさんNGNG
if文において、nが奇数の時としたいとき、どうすればいいですか?
0036デフォルトの名無しさんNGNG
整数なら if(n & 1) とか if(n % 2)
0037デフォルトの名無しさんNGNG
>>35
if(n&1){ /* 奇数の時 */ }
003832NGNG
まず、i2とj2にユーザーが指定した数字を入れる。
 この場合

ABCD
EFGH行/*3行4列の配列*/
IJKL
/*下と上が、一致する事を目標としている*/
68 66 67205
71 72 70205
74 75 76205 といった結果がでる
0039デフォルトの名無しさんNGNG
>36-37
おお、ありがとうございます。
こんな時間に助かります、まじで。
0040デフォルトの名無しさんNGNG
if(n%379721){ /* 奇跡の時 */ }
0041デフォルトの名無しさんNGNG
ところで、
if (flag == true)
と書いたって、flagが87や-1や1000にならないという保証は
何もないよね?
0042デフォルトの名無しさんNGNG
>>41
なんのことかしらんが、代入しているわけじゃないからflagはかわらんだろ?
違うのか?
0043デフォルトの名無しさんNGNG
>>41
if (flag) と書いても if (flag == true) と書いても
flagの値が何であるかの保証にならないのは同じ。

if (flag) のとき、Cの真偽の定義(0か0以外か)がそのまま使える。
if (flag == true)は冗長なだけで利点は何もない。
004435NGNG
おおお!!
成功しました。
まじで、ありがとう。
0045デフォルトの名無しさんNGNG
>>40
if ( !(n % 379721) ) { /* 奇跡の時 *? }
じゃなくって?
0046デフォルトの名無しさんNGNG
flagが87だろうと-1だろうと1000だろうと==trueは真だよね?と聞きたいのだろう。
004740NGNG
>>45
そうですた。
004832NGNG
本や2ちゃんねらは、あてにならないのでこのカウントする
プログラムでC言語を実験することにした。 
004946NGNG
ごめん。間違いた。
0050デフォルトの名無しさんNGNG
>>48
頭は大丈夫ですか?
0051デフォルトの名無しさんNGNG
前スレで
「if (flag == true)と書くと、flagの値が真偽値であることが
はっきりする」
と書いてた白痴がいたんだよ。
0052デフォルトの名無しさんNGNG
ここはみっともないインターネットですね。
005332NGNG
 >>50う〜ん!!どこか渡し、アタマ変でチュカ・・・!
   まともな事書いてるつもりなのにょににゃ〜。
0054デフォルトの名無しさんNGNG
>>32は真性?
0055デフォルトの名無しさんNGNG
話の前提は
C99ではないCで
#define false 0
#define true 1
int flag;
 :
 :
if(flag == true)
とする。
0056デフォルトの名無しさんNGNG
> 俺あんな次スレやだよ。伝統守って欲しいよ。だからこれきぼん。

タイトルが〜に聞けじゃなかったことなんて何回かあったと思うが・・・
0057デフォルトの名無しさんNGNG
前スレ1000にワロタ
0058デフォルトの名無しさんNGNG
>>51
あれはネタだって
0059デフォルトの名無しさんNGNG
そんなに型を確定させたいなら、
if( bFlag )
とかにでもしとけ
0060デフォルトの名無しさんNGNG
つーかさC言語しか知らん奴が多すぎ。もっと広い目を持て。
006132NGNG
 このスレに、ジサクジエンがいまちゅね・・・!!
 >>54
0062デフォルトの名無しさんNGNG
ハンガリアンキタ━━━━━━(゚∀゚)━━━━━━ !!!!!
0063デフォルトの名無しさんNGNG
あの熱さはネタじゃない。そうさ、奴はいつだって全力投球さ。
0064デフォルトの名無しさんNGNG
>>60
Cスレで何言ってんだ
0065デフォルトの名無しさんNGNG
if (flag)擁護派はC言語しか知りません。
0066デフォルトの名無しさんNGNG
>>65
逆
0067デフォルトの名無しさんNGNG
>>65
Cスレで何言ってんだ
0068デフォルトの名無しさんNGNG
>>65
PerlでもPHPでもそう書いています。
0069デフォルトの名無しさんNGNG
>>65-66 ジサクジエーン
0070デフォルトの名無しさんNGNG
>>68
JavaやC#やVB.NETではどうですか?
0071デフォルトの名無しさんNGNG
>60

#define begin {
#define end }
とかやる人でつか?(w
0072デフォルトの名無しさんNGNG
で、この話題で得ってあんの?
0073デフォルトの名無しさんNGNG
1レス10円だそうです
0074デフォルトの名無しさんNGNG
なんでCスレで他の言語を持ち出すのか謎。
0075デフォルトの名無しさんNGNG
>>74
C使いが他の言語を知っていることを証明するためです。
007632NGNG
 このソースを愚弄した奴がわるい。

i2=3;
j2=4;
ij=i2*j2;
if((str1=(int**)malloc(sizeof(int*)*i2))==NULL){
printf("メモリー確保の失敗:1");
exit(1);
}
for(i1=0;i1<i2;i1++)
if((str1[i1]=(int*)malloc(sizeof(int)*j2))==NULL){
printf("メモリー確保の失敗:2");
exit(1);
}


for(i1=0;i1<ij;i1+=j2){
putchar('\n');
for(j1=0;j1<j2;j1++){
printf("%c",str1[i1/j2][(len++)%i2]=('A'+i1+j1));
}
}
putchar('\n');
for(i1=0;i1<i2;i1++){
putchar('\n');
for(j1=0;j1<j2;j1++)
printf("%3d",str1[i1][j1]);
}
0077デフォルトの名無しさんNGNG
Lisp では
(if flag <then節> <else節>)
(if (eq flag true) ...) なんて書くやつぁDQN

ML では
if flag then <then節> else <else節>;
if flag = true then .. なんて書くやつはDQN
0078デフォルトの名無しさんNGNG
プログラミング初心者の方へ:

たいていの言語では、

0 - 偽
それ以外 - 真

と評価されます。
0079デフォルトの名無しさんNGNG
俺としては
if(flag)
これは良いんだが(というかしょうがない)
if(!flag)これも併用すると複雑な式の中で'!'を見逃す可能性があるから
if(flag == FALSE)と明示した方が良いと思うが。

if(!*s)やif(!s)では意味が違う訳だろ?
簡潔だが見間違いが起こりやすい。
if(*s == '\0')
if(s == NULL)
これなら明解だろ。
0080デフォルトの名無しさんNGNG
>>75
ネタは他いけ。
008132NGNG
 わかっとるわ〜い( ゚Д゚)ゴルァ!
0082デフォルトの名無しさんNGNG
>>79
それは誰も問題にしてない。
前提は>>55
0083デフォルトの名無しさんNGNG
>>76
そのソースを愚弄したんじゃなくて、意味不明な質問を注意したんでしょ?
0084デフォルトの名無しさんNGNG
>>78
おまえのいう「たいていの言語」ってなんだよ?(ワラ
0085デフォルトの名無しさんNGNG
(´-`).。oO(DQNの>>75祭りの予感…)
0086デフォルトの名無しさんNGNG
>たいていの言語
CスレなんだからCの話すればいいじゃんよ・・・
0087デフォルトの名無しさんNGNG
>>84
無知だな(藁
0088デフォルトの名無しさんNGNG
32 ってまじやばくない?
さっきから挙動不審なんだけど?
0089デフォルトの名無しさんNGNG
CならCらしいプログラムを書く。
他の言語ならその言語らしいプログラムを書く。

これじゃだめなのか?統一しないとだめなのか?
0090デフォルトの名無しさんNGNG
Cで叩かれたので他の言語を持ち出して優位になろうと必死
しかしスレ違いでまた叩かれる罠
0091デフォルトの名無しさんNGNG
Javaだとそもそもif文の条件にはboolean型しかかけない。
だからif (flag == true)なんて書くアフォはいない。
0092デフォルトの名無しさんNGNG
Cでこの程度じゃ(以下自粛
0093デフォルトの名無しさんNGNG
>>87
おまえは無知かつ無恥だな(W
009432NGNG
 だったらこれ、一致させてみてくだちゃい。
  なお、printf("%3c",str1[i1][j1]);修正したぞ

ABCD
EFGH
IJKL

D B C ヘ
G H F ヘ
J K L ヘ
0095デフォルトの名無しさんNGNG
>>82
無意味なことをしているという点では同じだろ。
0096デフォルトの名無しさんNGNG
つーかこっそりと去ればいいのにこじつけるからまた叩かれるんだよな・・・
0097デフォルトの名無しさんNGNG
これで統一すれば解決。論争は起こらない。
if (flag == FALSE){
}
else{
/* 処理 */
}
0098デフォルトの名無しさんNGNG
>>94
目的を明確にしないと分からないんだってばー
0099デフォルトの名無しさんNGNG
>>91
へー。Javaはifではboolean型しか書けないのか不便だな(w
0100デフォルトの名無しさんNGNG
>>97
うひょーーー!とんでもないあふぉ発生!
■ このスレッドは過去ログ倉庫に格納されています