C言語のことは漏れに聞け!!<41>
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
NGNG問題をちゃんと切り分けて、Cの話かそうでないか洗ってから質問してくれ。
というより、聞く前に一応 Web で検索しろ。
コンパイラを探してるなら >>2 を見ろ。
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/
前スレ <40>
http://pc3.2ch.net/test/read.cgi/tech/1036673739/
前々スレ<39>
http://pc3.2ch.net/test/read.cgi/tech/1036409391/
0002デフォルトの名無しさん
NGNGおつ!
00032
NGNG2はコンパイラ用だった、、スマソ
0004デフォルトの名無しさん
NGNGgcc
http://gcc.gnu.org/
【Win32用の開発環境のみ。】
gcc-cygwin
http://www.redhat.com/software/tools/cygwin/
gcc-mingw
http://www.mingw.org
Digital Mars C++
http://www.digitalmars.com/
Open Watcom
http://www.openwatcom.com/
Borland C++ Compiler 5.5.1
http://www.borland.co.jp/cppbuilder/freecompiler/
【ライセンスや機能などに問題あり】
Microsot C/C++ 13.0.9466(VC.NET)
http://www.microsoft.com/japan/msdn/netframework/downloads/
LCC-Win32
http://www.cs.virginia.edu/~lcc-win32/
CINT
http://root.cern.ch/root/Cint.html
めじろ++98
http://www.vector.co.jp/soft/win95/prog/se075910.html
0005デフォルトの名無しさん
NGNG聞けを訊けにしろとあれほど......
0006デフォルトの名無しさん
NGNG\∧_ヘ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
,,、,、,,, / \〇ノゝ∩ < 1000取り合戦、いくぞゴルァ!! ,,、,、,,,
/三√ ゚Д゚) / \____________ ,,、,、,,,
/三/| ゚U゚|\ ,,、,、,,, ,,、,、,,,
,,、,、,,, U (:::::::::::) ,,、,、,,, \オーーーーーーーッ!!/
//三/|三|\ ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
∪ ∪ ( ) ( ) ( ) )
,,、,、,,, ,,、,、,,, ∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
,,、,、,,, ( ) ( ) ( ) ( )
http://big.freett.com/scheme_a/num1000.swf
0007デフォルトの名無しさん
NGNGワラタ
0008デフォルトの名無しさん
NGNG0010デフォルトの名無しさん
NGNG二進数かよ!
00111
NGNG誰か過去スレ一覧を取得できる人がいたら載せてちょ。
0012デフォルトの名無しさん
NGNGなにぃっ!おいっ、責任者(前スレ990)出てこいっ!
0013デフォルトの名無しさん
NGNG1 も、漢字の意味を考えてくれ。
つーか、前スレを凄い勢いで終了させたのは誰だ。
0015デフォルトの名無しさん
NGNG0016デフォルトの名無しさん
NGNGばかもんがぁ!しかも2getするという失態までおかしおって!
0017デフォルトの名無しさん
NGNG0018デフォルトの名無しさん
NGNGポンコツ・トンチキ・ガラクタ・クズ・ゴミ・カス・最低以下の下劣・下等種族。
劣等種族・下衆野郎・腐れ外道・邪道・外道・非道・ウジ虫・害虫・ガン細胞。
ウィルス・ばい菌・疫病神・病原体・汚染源・公害・ダイオキシン・有毒物質。
廃棄物・発ガン物質・猛毒・毒物・アメーバ・ダニ・ゴキブリ・シラミ・ノミ。
毛虫・蠅・蚊・ボウフラ・芋虫・掃き溜め・汚物・糞・ゲロ・糞虫野郎・ほら吹き。
基地外・デタラメ・ハッタリ・穀潰し・ろくでなし・ごろつき・ヤクザ者。
社会の敵・犯罪者・反乱者・前科者・インチキ・エロ・痴漢・ゴミ・シデムシ。
ゴミ虫・毒虫・便所コオロギ・詐欺師・ペテン師・道化師・危険分子・痴呆・白痴。
魔物・妖怪・悪霊・怨霊・死神・貧乏神・奇天烈・奇人・変人・毒ガス・サリン。
ソマン・マスタードガス・イペリット・クソブタ・ブタ野郎・畜生・鬼畜・悪鬼。
邪気・邪鬼・ストーカー・クレイジー・ファッキン・サノバビッチ・シット・ガッデム。
小便・便所の落書き・不要物・障害物・邪魔者・除け者・不良品・カビ・腐ったミカン。
土左衛門・腐乱・腐臭・落伍者・犯人・ならず者・チンカス・膿・垢・フケ・化膿菌。
放射能・放射線・鬼っ子・異端者・妄想・邪宗・異教徒・恥垢・陰毛・白ブタ。
0019デフォルトの名無しさん
NGNG打ち首・市中引きずり回し・戦犯・絞首刑・斬首・乞食・浮浪者・ルンペン・物乞い。
放射性廃棄物・余命1年・アク・割れたコップ・精神年齢7歳・3審は必要なし。
不良品、規格外、欠陥品、不要物、埃、掃き溜め、吹き溜まり、塵埃、インチキ、居直り。
ふてぶてしい、盗人、盗賊、残忍、残酷、冷酷、非情、薄情者、ガキ、クソガキ。
ファッキン、ガッデム、サノバビッチ、シット、ブルシット、ボロ、ボッコ、妄信。
狂信者、有害物質、毒薬、猛毒、発ガン物質、誇大妄想狂。
他人の悪口は山ほどほざくが反省は一切しないガキ根性野郎、腐れ根性。
腐って歪んだプライドの持ち主、狭量、ボケ、ボケナス、アホンダラ、たわけ。
怠け者、無能、無脳、脳軟化症、思考停止、アメーバ、単細胞、蠅、蚊、カビ。
腐敗、膿、下劣、下等生物、劣等種族、クレイジー、マッド、ストーカー。
人格障害、守銭奴、見栄っ張り、ええ格好しい、粗製濫造品、偽物、似非
イカレ、乞食、浮浪者、ルンペン、狼藉者、放蕩息子、道楽息子、極道息子。
迷惑、困りもの、厄介者、村八分、異端者、アウトサイダー
大虐殺者。ナチスドイツ、731部隊、ポルポト派らと同類。
そして、こんな悪口を言うために労力を使う価値もないクズ
0021デフォルトの名無しさん
NGNGダイクストラによろしくな。
0023デフォルトの名無しさん
NGNGまさにカーニ犯
なんちゃって
0025デフォルトの名無しさん
NGNG(4)(「訊く」とも書く)たずねて、答えを求める。問う。
「名前を―・く」「自分の胸に―・く」
とあったぞ。
「訊く」ではヒットしなかったし、別にいいんでない?
0027デフォルトの名無しさん
NGNG次から
「C言語のことなら朕に尋ねよ」
にしよう
0028デフォルトの名無しさん
NGNGこれがいい。
0029デフォルトの名無しさん
NGNG元々のスレタイが、ビルジョブスの好き勝手で付けたものだし。
0030デフォルトの名無しさん
NGNG0031デフォルトの名無しさん
NGNG0032デフォルトの名無しさん
NGNG0033デフォルトの名無しさん
NGNG0034デフォルトの名無しさん
NGNG0035デフォルトの名無しさん
NGNG40 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
31
30
29
28
27
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
0036デフォルトの名無しさん
NGNG19 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
27 〜 32 がどうしても見つけられなかった。
0038デフォルトの名無しさん
NGNGPart1の>>1って痛いな、、、
0039デフォルトの名無しさん
NGNG悲惨な1スレの予感…
0040デフォルトの名無しさん
NGNG0041デフォルトの名無しさん
NGNG93 名前: ビル・ジョブス 投稿日: 2000/09/09(土) 16:17
>91
おぅ!そりゃ知ってるよ!おまえみたいなおバカなクソガキに
言われるまでもない。
ちなみに今は、CEがメインだからUnicodeオンリーだけどな!
0042デフォルトの名無しさん
NGNG0043デフォルトの名無しさん
NGNGでも、クロス環境などで、ターゲットに標準出力がないばあい、やっぱ
アサートさんを書き換えないとだめ? ですよねえ、きっと....
0044Booleanなら
NGNGif(!BOOL) or if(!(BOOL))
だよ!==は絶対変だよ!
0045デフォルトの名無しさん
NGNG0046デフォルトの名無しさん
NGNG一生やってろ!
0047デフォルトの名無しさん
NGNGググったんですが、いいサイトが見つからなくて…
0048デフォルトの名無しさん
NGNG0049デフォルトの名無しさん
NGNG0051デフォルトの名無しさん
NGNGアホなりに考えてループ作ってその中でかけ算。
0052デフォルトの名無しさん
NGNG脳みそ入ってるか?
0053デフォルトの名無しさん
NGNGgccってこっからダウンロードするの?
英語ばっかで意味わかんないんだけど・・・
だれか教えて!
0054デフォルトの名無しさん
NGNGglibc じゃなくって?
0055デフォルトの名無しさん
NGNGそれは何者!?
005653
NGNGこれ違う?
0057デフォルトの名無しさん
NGNGこれは?
005847
NGNGって感じで計算してるみたいですね。
ソースいろいろ探してみたんですが、見つかりませんでした。
VC++のMATH.H見てみましたが、意味が分からなかったです…
0059デフォルトの名無しさん
NGNG英語わからんのだったらbccにしとけ。
006047
NGNGありがとうございます。
これだけ複雑だとやっぱりpow(x,3.0)よりもx*x*xの方がアルゴリズム的に優れてそうですかね?
0061デフォルトの名無しさん
NGNGアルゴリズム的に、ってのが分からんが速いのは確か
006247
NGNG分かりました。サンクスです!
0063デフォルトの名無しさん
NGNG乗算の繰り返しだと有効数字の大きい実数で桁落ち起こすんじゃないか?
log使うのは精度保つためだと思ったな。
スピード的にも3乗くらいならそれでもいいがな。
0065デフォルトの名無しさん
NGNGこんなこといったいどういう時に使うんでつか?
0066デフォルトの名無しさん
NGNGバイトより細かいレベルでデータを処理したいとき。
0067デフォルトの名無しさん
NGNG0068デフォルトの名無しさん
NGNG0069デフォルトの名無しさん
NGNG0070デフォルトの名無しさん
NGNG0071デフォルトの名無しさん
NGNGなんで精度が良くなるの?
詳細キボンヌ
007247
NGNGpow(x,y)のyがdoubleの時はlog介してるため、powは遅くなりますが、
yがintの時ってどうなるんでしょうか?
double ipower(double x, int n)
{
int abs_n; double k = 1.0;
abs_n = abs(n);
while(abs_n != 0){
if (abs_n & 1){
k *= x;
}
x *=x;abs_n >>=1:
}
if (n>=0) return k;
else return 1/k;
}
って、感じだと思うんですが…やはり、直接やるよりはどっちにしても遅いですかね?
0073デフォルトの名無しさん
NGNG直接って何だ
ソースはglibcやBSDのを探して嫁
一般的なアルゴリズムの解析はKnuthの本とかにある
これ以上はアルゴリズムスレか数値計算スレにいくべし Cとは関係ない
0074デフォルトの名無しさん
NGNG0075那由多 ◆F4E74ZBQPA
NGNG低位レイヤーのアプリ作るとき、回線のデータから必要なデータを
取得したりするのにマスクしたビットをシフトさせて使うよ。
マジレスしてしまった。
(こちらもコンパイルはコマンドラインからだが)
VB、C#しかついてこないと思っていたから、ちょっとトクした気分。
160MBのダウソはつらかったが・・・。
0077デフォルトの名無しさん
NGNGpow(x, y)がexp(y, log(x))を計算している理由は、
yが整数でない場合を考えれば明らかだろう。
2倍、4倍、8倍などしたいときや、1/2、1/4、1/8したいとき、
通常の掛け算/割り算命令より早くできる。
例:左に1ビットシフト:2倍
右に1ビットシフト:1/2
0079デフォルトの名無しさん
NGNGlogはきわめて多項式で近似しやすい関数として知られている。
expもそう難しくない。
powの演算回数は、キミが書いたものより平均では少ないかも。
0080JPS ◆M0LaMzf5rY
NGNG#include <stdio.h>
#include <math.h>
int main(void)
{
unsigned x;
int s;
printf("自然数を入力してください:");
scanf("%u",&x);
printf("何ビットシフトしますか:");
scanf("%d",&s);
printf("%uを左に%dビットシフトした値は%uです。\n",x,s,x<<s);
printf("%uと2^%d乗の積は%uです。\n",x,s,x*(pow(2,s)));
printf("%uを右に%dビットシフトした値は%uです。\n",x,s,x>>s);
printf("%uを2^%d乗で割った商の整数部分は%uです。\n",x,s,x/(pow(2,s)));
return(0);
}
0081デフォルトの名無しさん
NGNGOS は?
Redhat 系 Linux だったら rpm でインストールすればいいし、
Windows なら mingw や cygwin が楽。
0082デフォルトの名無しさん
NGNGprintf("%uを左に%dビットシフトした値は%uです。\n",x,s,x<<s);
printf("%uと2^%d乗の積は%uです。\n",x,s,x*(1<<s)));
printf("%uを右に%dビットシフトした値は%uです。\n",x,s,x>>s);
printf("%uを2^%d乗で割った商の整数部分は%uです。\n",x,s,x/(1<<s));
0083デフォルトの名無しさん
NGNGcygwinはインストールしたけど
意味不明
0085デフォルトの名無しさん
NGNG> printf("%uと2^%d乗の積は%uです。\n",x,s,x*(pow(2,s)));
> printf("%uを2^%d乗で割った商の整数部分は%uです。\n",x,s,x/(pow(2,s)));
%uじゃdoubleを正しく表示できないダロー
0086デフォルトの名無しさん
NGNGprintf("%uを2^%d乗で割った商の整数部分は%uです。\n",x,s,x/(int)(pow(2,s)));
0088デフォルトの名無しさん
NGNGインストーラ(setup.exe)に devel というカテゴリがあるので、
そこにあるのを全部選択してインストールすべし。
0089デフォルトの名無しさん
NGNGなんかさ、DOS窓見たいのが出てきたんだけど
それ使う?
0090デフォルトの名無しさん
NGNG構文解析木について教えてください。出来ればサンプルプログラムと簡単な解説もお願いします。
よろしく。
0091デフォルトの名無しさん
NGNG0092デフォルトの名無しさん
NGNGn進法で1桁ずらせばn倍(n分の1)したことになる。
x桁ずらせばnのx乗倍(nの-x乗倍)したことになる。
10進で考えてわからんならくそして寝たほうが良い。
0093デフォルトの名無しさん
NGNG教科書1章分の内容をここに書けってか?
0094デフォルトの名無しさん
NGNGそ。Cygwin Bash Shell というタイトルのウインドウで作業をする。
gcc -v と打ってみな。
009590
NGNG同じ仲間じゃあないですか。
ここに書いておけば次に同じ質問がきたらここをみろ、っていえるし。
よろしくブラザー。
0096デフォルトの名無しさん
NGNG(病理学的なぐらい)厳密には、C89 の規格ではそうとは限らない。
0097デフォルトの名無しさん
NGNGやったら荒らしに近い行為になるぞ。
0098JPS ◆M0LaMzf5rY
NGNGわからないとでも思ってんのか?
本に載ってたのをpow()を使ってやってるだけだよ
分からないやつがいるかもって思うお前のほうが寝たほうがいいよw
0099デフォルトの名無しさん
NGNGやってみないとわからないようなやつはくしして寝たほうが良い
0100デフォルトの名無しさん
NGNG0101デフォルトの名無しさん
NGNGすぐ煽りにつられるようなアフォは糞して…
0102デフォルトの名無しさん
NGNG0103デフォルトの名無しさん
NGNGこれで良いだろ。
0104デフォルトの名無しさん
NGNGあれは覚えようとする気力をなくす言語だ。
0105デフォルトの名無しさん
NGNG0107デフォルトの名無しさん
NGNGDQNなプログラムをコテハンでさらす厨房のくせに態度でかいよ(w
0109デフォルトの名無しさん
NGNG0110デフォルトの名無しさん
NGNG0111デフォルトの名無しさん
NGNGたしかにその態度のでかさは才能だろうがウザイ。
少なくとも漏れはお前みたいな間違いをして、人に聞かないとわからない
なんて間抜けな経験はない。
0112デフォルトの名無しさん
NGNGネタですた。
0113デフォルトの名無しさん
NGNG0114デフォルトの名無しさん
NGNG0115JPS ◆M0LaMzf5rY
NGNGなったよ。doubleだって知らんかったけど%fで解決した。
まあ>>111みたいな中途半端な煽りはつまんねーけど
またここに来てやるよ。お前らを使ってやってるんだから
ありがたく思え。
0116デフォルトの名無しさん
NGNGこっちがありがたく思うんかい。
0117デフォルトの名無しさん
NGNG,,、‐'"~ 'i.゙i''i,ヽ...,
,.r''' i''゙ノ ゙゙,ニ''く
/ r‐'''''i i, (" ヾ,
,' , ゙~´゙ー ゙´ .',
,' ,: _,/,,_:;.;l ,l i .!.l.l',.i.l:.. , l ,i,l
i l l .::/.,rツ=リ,ji'!;|:.:j;rl≦ト、;' j:. lj'
l,. l.l.::/-'〃i'''i, ',ソ!ンシr'i.゙'リ|/://:リ 異議あり!
,' 'ivl/" lゝ'l '"'゙ l'r'! ィンシ /'
,' :::{ r, ''゙‐゙ ..iソ {ノ" ,、‐''""''、
/ .:::゙'‐-、. -- ノ ,、‐゙ ',
. /,r''''''ー‐--、:'i‐ 、、,,,,,.、 -''゙ ゙、 ,、-'" j
// 、 ,,,_ヾ、 ト、;;;;;::. ゙、、-'" ̄~~~゙゙゙" /
// 、` ~ ~゙''''''''''"~´ ゙'ソ. ', ....::::::::::::/
. // ... ´ .::::;/ ゙、..... ........:::::::::::::::::::::/
/ '、:....:::::", .:;rj゙ ゙、;;;;::::::::::::::::::;;;;、-''゙
. / ヽ;:::::"._ .:::i';/ ゙、 ゙、`~~~゙゙~‐- 、、、..,,_
. ,' .:::::ヽ、;;;;;>、:::... ::::r' ゙、 ゙、:::::: ヽ
i ,: ::::::;:::::l:::',:::::::::゙i'r、;:::::::!. ヽ ゙、 .::〉::::::.... }
. l i::.:::::i::::::l:::::',:: l:/;;;::゙'ーr゙、 ヽ ゙.、.:::::;/'ー 、、;;;;____;;::、-'"
|l :!::::::i:::::::l:::::::}、 l:::::::~゙''''! i .........ヽ........:::::;r゙''"
. l l l::::::i::::;;;、、、/. l::::::::::::::l .〉、;;;;;;::、-'rーi''゙
l,l l:::::l:::::i,:::::;;;;;ヽ,ri;;;;;;;;;;;;;j::::/;;;;;;;;ノ:.. |: j
0118デフォルトの名無しさん
NGNG0119JPS ◆M0LaMzf5rY
NGNG先頭のアドレスを返すってことはさ、
int *vc;
vc=malloc(sizeof()int*size)ってやるとさ、vcにはsizeof()int*size分の確保された
メモリの先頭アドレスが返ってくるんだろ?
したらvcは配列になるってことだろ?
これが可変長配列ってもんだろ?
0120JPS ◆M0LaMzf5rY
NGNG0121デフォルトの名無しさん
NGNG違うけど、そう思ってプログラム書いても大丈夫といえば大丈夫。
0122デフォルトの名無しさん
NGNG0124121
NGNG0127JPS ◆M0LaMzf5rY
NGNGで、121よ、どこが違う?
0128デフォルトの名無しさん
NGNG考え方としては合ってるけど、可変長配列というと
別のものと紛らわしい。
0130JPS ◆M0LaMzf5rY
NGNGお。分かった気がする。
可変長なのはvcの先にあるものね。
vcは常に、その先にある配列の先頭のアドレスが入ってるから・・・
んー。わかったかも。
0132デフォルトの名無しさん
NGNG配列だといってまちがいあるまい。
0133デフォルトの名無しさん
NGNG0134デフォルトの名無しさん
NGNGvoid foo(n)
{ int a[n];
...
みたいなやつのことだろ。
0135デフォルトの名無しさん
NGNG最近のCだけだな。それできるの。
0136121
NGNG0137121
NGNG0138デフォルトの名無しさん
NGNGあとは、
void f(int m, int c[m][m])
みたいなのとか。
0139デフォルトの名無しさん
NGNG未定義と禿しく未定義の違いを教えてください。
あれ以来夜も眠れません。今朝だけど。
0142JPS ◆M0LaMzf5rY
NGNGvoid foo(int n)
{
int vc[n],i;
for(i=0;i<n;i++)
みたいな感じか!?
0143デフォルトの名無しさん
NGNGそんなとこつっこむなよ
0147デフォルトの名無しさん
NGNGコンパイラがC99に対応していないとだめだぞ。
VC++6.0なんかは対応していない(1998年発売だから当たり前だけど)
0148デフォルトの名無しさん
NGNGvoid foo(n)
int n;
{
のint n;は略してもいいんだっけ。
0149JPS ◆M0LaMzf5rY
NGNG#include <stdio.h>
void foo(int n)
{
int vc[n],i;
for(i=0;i<n;i++)
vc[i]=i;
for(i=0;i<n;i++)
printf("%d\n",vc[i]);
}
int main(void)
{
int n;
scanf("%d",&n);
foo(n);
return(0);
}
コンパイル不可能なんだけど。
0150デフォルトの名無しさん
NGNG>>147
0151デフォルトの名無しさん
NGNG*ip=100;
はわかるのですが、
int *arrayp = malloc(sizeof(int)*n);
arrayp[n-1]=-1;
で、なぜipとarraypが同じ型なのかわかりません。
1つの変数も配列も同じものなんでしょうか?
0152デフォルトの名無しさん
NGNGなぜって同じint *で宣言しているじゃん
それと、mallocで得た領域を配列と見なすのならば、前者は要素1の配列、後者は要素nの配列
0153JPS ◆M0LaMzf5rY
NGNGipとarraypは両方ともintへのポインタ型だべ?
mallocは確保した領域のアドレスの先頭へのポインタを返すから
ポインタ型じゃないと代入できない。
0155デフォルトの名無しさん
NGNG「なぜ同じint *で宣言すべきなのか」が聞きたいのです。
片方は整数1個へのポインタ、
もう一方は整数の配列へのポインタなのに。
0156デフォルトの名無しさん
NGNG.cppという拡張子にすればコンパイルできるのでは。
0157デフォルトの名無しさん
NGNG一個でも配列は配列だ。
mallocはポインタを返す。だからポインタで受け取るべきだろ。
0158デフォルトの名無しさん
NGNGひとつ聞くが、
int i[1];と宣言した場合、i=4;なんてできると思うか?
0159デフォルトの名無しさん
NGNGipは配列へのポインタなのですか?intへのポインタだからint *だと思ってました。
>>158
いいえ。
0160デフォルトの名無しさん
NGNGどちらも整数配列へのポインタとみなしてかまわない。
ipの方は要素数=1 の配列(の先頭アドレス)とみなす。従って、
ip[0] = 100;
という操作も可能。
0161デフォルトの名無しさん
NGNGなに言ってるんだ?大丈夫か?
0162デフォルトの名無しさん
NGNG>>155が要素数1のint配列を単なるint型変数と同じだと思っているみたいだから言ったまでですが。
0163デフォルトの名無しさん
NGNG同じ型なのか、という点がまだわからないんですが…
0164デフォルトの名無しさん
NGNGip=&i;
ip[0]=10; /* OK */
ip=ia;
ip[0]=10; /* OK */
これが分かれば理解できると思う。
0165デフォルトの名無しさん
NGNGint i;は整数1個が入る変数で、配列ではありませんよね。
それは最初からわかってます。
0166デフォルトの名無しさん
NGNG整数と、整数1個の配列は同じということですか?
0167デフォルトの名無しさん
NGNGint iとint ia[1]は確保する領域の大きさは同じ。
int *はそのアドレスを入れる変数だから、、、
0168デフォルトの名無しさん
NGNGじゃあ、整数10個の配列へのポインタは別の型なんですか?
0169デフォルトの名無しさん
NGNGia = &i;
*ia = 3;
printf("%d\n",i) => 3
ってことですね。
0170デフォルトの名無しさん
NGNGint *ip=(int *)array;
*array=10; /* こういうのもできるはず */
0171170
NGNG0172デフォルトの名無しさん
NGNGコンパイラ依存(arrayがintと同じアドレス境界に整列されている保証はない)。
0173デフォルトの名無しさん
NGNGメリットは?
0174デフォルトの名無しさん
NGNG0175デフォルトの名無しさん
NGNGなんのメリットがあるか書いてください。
メリットが無いことを教えないでください。
0177デフォルトの名無しさん
NGNGあんた何いってんの?
0178デフォルトの名無しさん
NGNG「整数の配列の配列へのポインタ」とは違う型なのはなぜですか?
0179デフォルトの名無しさん
NGNG170で「できる」と書いているのは嘘だということ。
「できる環境もある」が正しい。
0180デフォルトの名無しさん
NGNGp = malloc(sizeof(int))では
[<- 4 byte ->]
というメモリが確保されるとしよう。
p = malloc(sizeof(int)*n)では
[<- 4*n byte ->]
というメモリが確保される。Cでは、これを配列とみなして
[<- 4 byte ->][<- 4 byte ->].....[<- 4 byte ->] (=要素数n個)
という「n個の要素をもつint型の配列」として使うことができる。
で、最初の例に戻ると、p = malloc(sizeof(int))で
[<- 4*1 byte ->]
というメモリが確保され、これは
[<- 4 byte ->] (=要素数1個)
と等価なので、pを「一つの要素をもつint型の配列」として使うことができる。
0181デフォルトの名無しさん
NGNGそんなこたー無い。
0182デフォルトの名無しさん
NGNGお前さぁ、知識はあればあるほど得なんだよ。たとえどんなものでも。
情報の取捨選択も出来ずにごちゃごちゃほざいてるお前、才能無いと思う。
0183デフォルトの名無しさん
NGNGなんでよ!?
sizeof(int)分配列を確保すればそこにint型の値を入れられるだろ
0184デフォルトの名無しさん
NGNG「アドレス境界」と「アドレスの整列」という言葉を理解しているか?
0185デフォルトの名無しさん
NGNG配列(mallocは除く)は連続した領域だってわかっている?
0186デフォルトの名無しさん
NGNG最初の質問者です。なんとなくわかってきました。
区別できないから同じ型とみなすということですね。
では>>178にも書きましたが、配列の配列も同じ並びかただと思うのですが
なぜ型が違うのでしょう?
0187デフォルトの名無しさん
NGNG0188デフォルトの名無しさん
NGNG0189デフォルトの名無しさん
NGNG0190デフォルトの名無しさん
NGNGあたりまえのこと聞いてごまかすな。
境界と整列について知らないなら知らないといえ。
0191デフォルトの名無しさん
NGNG0192デフォルトの名無しさん
NGNG0193デフォルトの名無しさん
NGNG小学生か(w
0194デフォルトの名無しさん
NGNG0195デフォルトの名無しさん
NGNG誰のこと?
0196デフォルトの名無しさん
NGNG0197デフォルトの名無しさん
NGNG構造体じゃあるまいし・・・
0198デフォルトの名無しさん
NGNG0199デフォルトの名無しさん
NGNGおいおい…charは整列する必要がない。
char単位でコピーなり比較なりすればよい。
たとえば1/sizeof(int)回で住むからといって
memcpyやmemchrをintを使って読み書きするように書くか?
0200デフォルトの名無しさん
NGNGchar配列の先頭アドレスがint境界に整列してる保証があるわきゃねーだろ
ヴォケが。
自分の無知を棚に上げてよく言うよ。
0201デフォルトの名無しさん
NGNG0202デフォルトの名無しさん
NGNGmemcpyは複数バイト単位で転送してると思うぞ。
0203デフォルトの名無しさん
NGNGalignment bouncaryを知らない厨房が1人、大勢のふりして暴れてるのか。
> では>>178にも書きましたが、配列の配列も同じ並びかただと思うのですが
> なぜ型が違うのでしょう?
とは・・・・
>「整数へのポインタ」と「整数の配列」
=>int a;(int a[1];)
==>int *a_p;
>「整数の配列の配列」
=>int b[10][10];
==>int **b_p;
a_pとb_pの違いのことを言っているのか??
0205デフォルトの名無しさん
NGNGああ、なるほど。最初と最後の未整列のところだけcharで書けば
できるかもね。でもホントか?
数十バイト程度だと、かえって遅くなりそうな気がするが。
0206デフォルトの名無しさん
NGNGmemcpy(or strcpy)の実装についてつい最近この板で議論されていたと思う
のだが、どこだったか見つからない。
0207JPS ◆M0LaMzf5rY
NGNGおれはちゃんと説明したし・・・
153 :JPS ◆M0LaMzf5rY :02/11/10 19:26
>>151
ipとarraypは両方ともintへのポインタ型だべ?
mallocは確保した領域のアドレスの先頭へのポインタを返すから
ポインタ型じゃないと代入できない。
しかも今ボンバーマンやってたしw
0208デフォルトの名無しさん
NGNGchar c[sizeof(int)];
がint型として扱えるだって(w
なんちゅーDQNだ(禿藁
0209JPS ◆M0LaMzf5rY
NGNG0210デフォルトの名無しさん
NGNGなんで扱えないんだったっけ?
0211デフォルトの名無しさん
NGNG0212デフォルトの名無しさん
NGNG複数バイト単位で転送してたらかなり大きいコードになりそうだが。
0213JPS ◆M0LaMzf5rY
NGNGなんてヘッダで定義されてんの?
0214JPS ◆M0LaMzf5rY
NGNGこれと似たやつでさ、strなんとかってなかった?
どう違うの?
0215デフォルトの名無しさん
NGNG燃料注入してるつもりか?
0216デフォルトの名無しさん
NGNG0218デフォルトの名無しさん
NGNG{
int i;
long *lp1=p1,*lp2=lp2;
for(i=0;i<4;i++,lp1++,lp2++)
*lp1=*lp2;
}
きちんとコピーされる保証はない?
0219218
NGNGlong = 4バイトとして、
char p1[1024],p2[]="aaaaaaaaaaaaaaa";
これでfunc(p1,p2);を呼ぶ
0220デフォルトの名無しさん
NGNGいったい何をやりたいコードなのか?
0221218
NGNG0222デフォルトの名無しさん
NGNG保証はないね。
0224218
NGNG0225JPS ◆M0LaMzf5rY
NGNGきゃらにしとけや
あとなんでforの条件が<4なの?
さらに*lp1++=*lp2++;
これでいいんでない?
0226デフォルトの名無しさん
NGNGどのあたりが?
0227デフォルトの名無しさん
NGNG32バイト以下、またはsrc, dstどちらかが4バイト境界に整列して
いないならば、バイト単位でコピーしてる。
32バイトより大きくて、両方が4バイト境界にそろっている場合のみ
ワード単位でコピーしてる。
0228デフォルトの名無しさん
NGNGchar配列の先頭番地が、long境界に整列しているという保証はない。
0229デフォルトの名無しさん
NGNGいずれにしても処理系依存だな。
0230デフォルトの名無しさん
NGNGそうだね。
あと、もし1回の読み書きごとに例外が起きてOSに落ちたら、
恐ろしく遅くなるね。
0231デフォルトの名無しさん
NGNGそう言う処理系ではコンパイラがwarning出すと思うよ。
0232デフォルトの名無しさん
NGNG0233デフォルトの名無しさん
NGNG0234デフォルトの名無しさん
NGNG0235デフォルトの名無しさん
NGNGvoid *との間のキャストでは警告の出しようがないだろう。
0236デフォルトの名無しさん
NGNGchar一文字の領域のアドレスが整列化で語アドレスになるのは分かるが
charの連続した領域はバイト単位で詰め込まれるんじゃないの?
(alignment restrictionがあったとしても。)
少なくとも俺の環境ではバイト毎だった。
そうならないアーキテクチャがあるってこと?
それとも全く別の理由で>>170は叩かれてるの?
ちょっと教えて欲しい。
0237デフォルトの名無しさん
NGNGひとめで知ったかとわかる(w
0238デフォルトの名無しさん
NGNGもちろん
char array[sizeof(int)];
で、array[0], ..., array[3]は連続したアドレスに割り当てられる。
それは規格で保証されている。
問題は、たとえばintを4の倍数アドレスに置かないとロードやストアが
できないCPUで、array[0]が4の倍数アドレスに置かれる保証がないことだ。
0239デフォルトの名無しさん
NGNG0240デフォルトの名無しさん
NGNGじゃあint *ip=malloc(sizeof(int));ってやって、ipが4の倍数のアドレスじゃなかったら、*ip=1024;とかできないってこと?
そういう処理系では必ずmallocは4の倍数のアドレスを返してくれるとか?
0241デフォルトの名無しさん
NGNGわからないんだったら、とりあえず、見とけ。
議論をさえぎらないでくれ。
215の「燃料注入してるつもりか?」は火に油を注ぐと言う意味だ。
#・・あとで、ゆっくりググルか、落ち着いた頃にスレを読みなおせば
#わかるはずです。
0242デフォルトの名無しさん
NGNGmallocは常に適切に整列された結果を返す。
そうでない処理系は規格違反。
0243デフォルトの名無しさん
NGNG0244デフォルトの名無しさん
NGNGじゃあint iと宣言した領域をcharの配列として使うのはOK?
0245デフォルトの名無しさん
NGNG氏ね。
>>239
違うよ。
>>238
なるほど。
0246デフォルトの名無しさん
NGNG0247デフォルトの名無しさん
NGNGそれはOK。でないとmemcpy等にint *を渡せなくなる。
0249デフォルトの名無しさん
NGNGできない。
x86では境界に整列していなくても読み書きできるが、激しく遅くなるので
やらないほうが良い。
0250デフォルトの名無しさん
NGNG大活躍。
0251デフォルトの名無しさん
NGNGそうか。またひとつ賢くなったよ。ありがとう。
>>170はchar配列じゃなくてchar *にmalloc(sizeof(int))を入れるようにすればOKなんだろうな。
0252デフォルトの名無しさん
NGNG>>204
>>「整数へのポインタ」と「整数の配列」
>=>int a;(int a[1];)
>==>int *a_p;
>
>>「整数の配列の配列」
>=>int b[10][10];
>==>int **b_p;
>
>a_pとb_pの違いのことを言っているのか??
そうです。b_pはなぜint *じゃないのでしょう?
あれ、でもint **とするとコンパイラに怒られますが。
0254JPS ◆M0LaMzf5rY
NGNGここが難しい!!
0255デフォルトの名無しさん
NGNGfor (i=0;i<N;i++) for (j=0;j<N;j++) a[i][j]=0;
こうすると、a[i][j]の全体(N*N個の整数)がきちんとクリアされるという。
なのに、a[i][N-1]とa[i+1][0]の番地は並んでいないという。
なぜか?
0256デフォルトの名無しさん
NGNG>=>int b[10][10];
>==>int **b_p;
bの型はint **じゃないだろう。
0257デフォルトの名無しさん
NGNG配列とは限らんが。
0258デフォルトの名無しさん
NGNGコンパイラが並ばないようにしたから
0260デフォルトの名無しさん
NGNGぶぶー、はずれ。
0262デフォルトの名無しさん
NGNG0263デフォルトの名無しさん
NGNGint *a[N];
for (i=N-1;i>=0;i--) a[i]=calloc(N, sizeof(int));
0264デフォルトの名無しさん
NGNGa[i]がポインタで別々のところのポインタが入っていればそうなるよ。
0265デフォルトの名無しさん
NGNGそのコードを実行できる形にするのはコンパイラだろ?
>>258で合っているじゃん。まともな回答じゃないが。
0266デフォルトの名無しさん
NGNG指している先が「整数の箱(1つ)」でも「整数の配列」でも
int *だというのは何となくわかりました。
でも、そうすると「整数の配列の配列」も同じ理屈で
int *でよいと思うんですが、なぜ違うのでしょう?
0267JPS ◆M0LaMzf5rY
NGNG0268デフォルトの名無しさん
NGNGcalloc使うなら0に初期化する処理は無駄だね。
0269デフォルトの名無しさん
NGNGコンパイラはa[i][N-1]やa[i+1][0]のメモリを割り付けていない。
0270デフォルトの名無しさん
NGNGって宣言するの。
0271デフォルトの名無しさん
NGNGa[i]がポインタじゃないときってどんな時なんですか?
0272デフォルトの名無しさん
NGNGただの仕様だろ。並べなきゃいけないってしちゃったら、メモリを連続させて確保するコストがかかるから。
0273デフォルトの名無しさん
NGNG途中でクリアすることもあるんでは?
…ってそういうことを問題にしたわけじゃない(w
0274デフォルトの名無しさん
NGNGポインタ配列を用意して、そこにmalloc,callocで得た領域を入れるんだってさ・・・
0275デフォルトの名無しさん
NGNGint a[N][N];
この場合はa[i]は使えないのかな。
0276JPS ◆M0LaMzf5rY
NGNG0277デフォルトの名無しさん
NGNGhoge a[N];
0278デフォルトの名無しさん
NGNGと宣言したら、必ずa[i-1][N-1]の次にa[i][0]が並ぶ(i=1..N-2)。
int *a[N];
で、a[i]を動的に確保したら、a[i-1][N-1]とa[i][0]の間は
(重なっていないということを除いて)どういう関係があるかわからない。
ちなみに、確保するのはcalloc(またはcallocから呼び出される下位ルーチン)だ。
コンパイラじゃない。
0279デフォルトの名無しさん
NGNGcallocのソースをコンパイルするのはコンパイラ
0280279
NGNG0281デフォルトの名無しさん
NGNGコンパイルするのはコンパイラだな。
でもコンパイラが確保するわけじゃない。
「【整数 int a 】の配列」
int a[10];
int *a_p;
「【整数の配列 int b[5] 】の配列」
int b[5][10]
int *(b_p[5]);
とうぜん、b_pの型は、int *だから、
int *(*b_p);
ってなる。
0284デフォルトの名無しさん
NGNGvoid mult(double a[N][N], double b[N][N], double c[N][N]) {
int i, j, k;
for (i = 0; i < N; i++) for (j = 0; j < N; j++) {
a[i][j]=0.0;
for (k = 0; k < N; k++)a[i][j] += b[i][k] * c[k][j];
}
}
これを速くしようと、
void mult(double a[N][N], double b[N][N], double c[N][N]) {
int i, j, k;
for (i = 0; i < N; i++) for (j = 0; j < N; j++) {
double sum = 0.0;
for (k = 0; k < N; k++) sum += b[i][k] * c[k][j];
a[i][j] = sum;
}
}
と書き換えたら、実行結果が変わってしまったという。なぜ?
0285283 ◆JWPaeN65Rw
NGNGです。
0286デフォルトの名無しさん
NGNGb_pはint [5]の大きさをもつ配列へのポインタでしょ?int **b_pにはならないでしょ。
0287デフォルトの名無しさん
NGNGちょっとまて。
*b_p は整数だと思うんだが。
0288デフォルトの名無しさん
NGNGNってなんだよ?マクロか?
0290デフォルトの名無しさん
NGNGって宣言したらスタック上に確保されるだろうが。
どうしてcallocが関係あるんだ?
0291デフォルトの名無しさん
NGNG0292デフォルトの名無しさん
NGNGこういうところしっかりしておかないとな。つっこみ問題は。
まあ定数じゃなかったらコンパイルエラーになるが
0293292
NGNG引っかけ問題だな。
0294デフォルトの名無しさん
NGNGネタなのか真正DQNなのかはっきりしる!
0296295
NGNGまぎらわしいんじゃ!
0297JPS ◆M0LaMzf5rY
NGNGint b[5]={1,2,3,4,5};
int *b_p=b;
この時、*b_pもb_p[0]も式の中では1となるしょ?
int **b_pになるべ。あら・・・
0298295
NGNG0301デフォルトの名無しさん
NGNGmult(a, a, c);ってやってたくらいしか思いつかんな。
0302266
NGNGint *ip, i;
int *ap, array[10];
ip = &i; ap = array;
*ipも*apも整数の値が出てきますよね。
int b[5][5];
のとき
int *bp1 = b;も int **bp2 = b;もコンパイラに怒られます。
*bp1とすると整数が取り出せるんだから、int *で良いような気がするのですが。
それとも、*bp2とすると、どこかへのポインタが得られるんでしょうか?
0303デフォルトの名無しさん
NGNG正解!
bかcがaと重なっていた。
0304デフォルトの名無しさん
NGNGhogeのポインタ = hogeの配列 はできると思ってくれ。
intの配列の配列 が b。
intのポインタ にも
intのポインタのポインタ にも 代入できない。
0305デフォルトの名無しさん
NGNGしかしどうしてそう言う風になってるんだろう。
0306デフォルトの名無しさん
NGNGあるプログラムでは、大量のunsigned longの配列を
calloc(N, sizeof(unsigned long))で確保している。
プログラマが、配列の内容は実は全てunsigned charで十分あらわせる
範囲だと気づき、unsigned longを全部unsigned charに直したが、
消費するデータ領域はちっとも減らなかったという。なぜ?
0307デフォルトの名無しさん
NGNGint (*bp3)[5];
一つ言えるのは、こんな重箱の隅な知識覚えても何の役にも立たないということだ。
0308デフォルトの名無しさん
NGNG0309デフォルトの名無しさん
NGNGchar の配列を宣言してるからでしょ。サイズはintだけどintじゃないから
0310デフォルトの名無しさん
NGNGdoubleとして扱われるかもしれないからって、char配列を全て
double境界に整列する仕様のほうが良いか?
「そんな使い方しないから詰めて割り当ててくれ」という人も
多いんじゃないか?
0311デフォルトの名無しさん
NGNG……正解。簡単すぎたか。
0312デフォルトの名無しさん
NGNGそんな処理系あんのか?charはちっちゃくしとけよ。
0313デフォルトの名無しさん
NGNG実際に存在するのか?
0314デフォルトの名無しさん
NGNGintは16bit以上だと規格で決まっていると言っている人が何人かいたけど、1バイト=16bitならsizeof(long)==sizeof(char)になってもおかしくはないよな。
0315308
NGNG0316デフォルトの名無しさん
NGNG規格、仕様と言いながらソースを示さないこと
だろうな。
おかげでアホな間違いとかも散見される。
0317デフォルトの名無しさん
NGNG番地も32ビットごとについている。
なので、Cではsizeof(char) == sizeof(int) == sizeof(long)
0318デフォルトの名無しさん
NGNGそれか!
以前charだろうがintだろうがみんな32bitの環境でプログラミングしていると言っている人がいた。
0319デフォルトの名無しさん
NGNGlongは32bit以上じゃなかったっけ?
0320317
NGNG×TM320x0シリーズ
○TMS320シリーズ
0321デフォルトの名無しさん
NGNG0322317
NGNG0323デフォルトの名無しさん
NGNG0324デフォルトの名無しさん
NGNG当面16bitでいいじゃん。どうせUnicodeは当分BMPしかつかわんでしょ。
0325デフォルトの名無しさん
NGNG0326デフォルトの名無しさん
NGNG0327那由多 ◆F4E74ZBQPA
NGNG�@配列ってのは、アドレス順にあるもんが並んでいることを言います。
�A[整数]の配列といったら、下のようなイメージです。
a[4]={14,15,16,17};
aのアドレス->値
100 ->14
101 ->15
102 ->16
103 ->17
�B[整数の配列]の配列といったら、下のようなイメージです。
b[2][3]={{10,20}.{11,21},{12,22}};
bのアドレス->値
200 ->100
201 ->102
202 ->104
#2個飛びのアドレスが格納される。
ちなみに、次のアドレスには
100 ->10
101 ->20
102 ->11
103 ->21
104 ->12
105 ->22
�Cint **というのは、ポインタの配列を表していますが、2個飛びのアドレスが
入るということまで、わからないのです。
したがって、int **bp2=bとするエラーになる。
�D>307のように書けば、いくつ飛びのアドレスが入るかが、わかるので、
うまくいくはず。
#手元にコンパイラが無いので、確認できん、スマソ。
0328デフォルトの名無しさん
NGNGまて、多次元配列はメモリー上に直行的に並ぶはずだぞ。
0329デフォルトの名無しさん
NGNGそんな無茶な。
いつから勝手にポインタ配列にしてくれるようになった?
0330デフォルトの名無しさん
NGNG0331那由多 ◆F4E74ZBQPA
NGNG0332デフォルトの名無しさん
NGNGそだな。
charは8bit
intは16bit
longは32bit
が最低保証されているから CHAR_BIT = 16ならば
sizeof(char) = sizeof(int) までだな。
ちなみに、charは参照可能な最小単位を定義しているので、sizeof(char)は必ず1を返す。
他の型のsizeofはcharの何倍かを返すんだとさ。
0333デフォルトの名無しさん
NGNGダウト。
0334デフォルトの名無しさん
NGNGじゃあ正解は?
0335デフォルトの名無しさん
NGNG0336デフォルトの名無しさん
NGNG0337デフォルトの名無しさん
NGNGSCHAR_MINは-127以下SCHAR_MAXは127以上が保証されているハズだぞ。
他の型も同様にビット数ではなくて値の範囲で定義されているのだが。
-側が128でないのは1の補数マシンへの配慮だと思われる。
0338デフォルトの名無しさん
NGNG見ていたPGの中にこのような処理があったのですが、これはどのくらい値に差があるときに成り立つのでしょうか?
10倍ぐらいでしょうか?
if(num >> 4) {
}
0339デフォルトの名無しさん
NGNG0340デフォルトの名無しさん
NGNGnum / 16 16以上ってこと。
0341デフォルトの名無しさん
NGNG>>が何の演算子かまず調べたまえ。
比較演算子ではないぞ。
0342338
NGNG>>は16以上のときなのでしょうか?
300 >> 4
だったらTRUEで、
15 >> 4
だったらFALSEと考えていいのでしょうか?
0343デフォルトの名無しさん
NGNGだから、比較じゃないって。数学の>>とは別の意味。
手元の参考書に載ってなければ、すぐさま別の本を買ってきて読め。
0344デフォルトの名無しさん
NGNG比較じゃないってば。
300 >> 4 は 30/16 で
15 >> 4 は 15/16 だ。
0345デフォルトの名無しさん
NGNG「>>」は超比較演算子と言って上級者でも殆ど使わない演算子だから
覚えなくても良いよ。
実は2chで相手の番号をレス番号を指す時の「>>」も、この演算子が由来なんだよ。
0346デフォルトの名無しさん
NGNG0347デフォルトの名無しさん
NGNGコンパイラが規格に準拠しているかどうかということ自体、処理系依存だよな。
0348338
NGNGわかりました。割り算ということですか?
300 >> 4 => 30 /16
15 >> 4 => 15/16
左辺は2乗したもので割ればいいのでしょうか?
右辺の法則がちょっとわからないのですが。
0350デフォルトの名無しさん
NGNG11110000 >> 4 だったら
00001111 になる。
00001111 >> 4 だったら
00000000 になる。
0351デフォルトの名無しさん
NGNG4ビット右シフトは1/2^4
2進の環境下で4桁右にずらすんだからね。
あ、アンダーフローは考えないで
0352351
NGNGあ、アンダーフローは考えないで ←これは間違いだ
0353デフォルトの名無しさん
NGNG0354338
NGNGわかってきました。
右にビットをずらしていくのですね。ぜんぜんイメージと違っていました。
一番左のビットには必ず0がくると考えていいのでしょうか?
0357デフォルトの名無しさん
NGNG0358デフォルトの名無しさん
NGNG0359デフォルトの名無しさん
NGNGさんきゅ
>>356
例えばwhile(a<<=1) ;とかwhile(a>>=1) ;なんてやった場合、論理シフトじゃないと無限ループになる可能性がある
0360338
NGNG算術シフトと論理シフトの違いってなんでしょうか?
算術シフトが符号で埋められるというのは、
10001001 >> 2 => 11100010
00001001 >> 2 => 00000010
ってことでしょうか?
0361デフォルトの名無しさん
NGNG0362デフォルトの名無しさん
NGNG0363デフォルトの名無しさん
NGNGそう。
算術左シフトは符号ビットは変わらず他のビットが左にずれる。空いたところには0が入る。
論理左シフトは全ビット左にずれる。空いた領域には0が。
0364デフォルトの名無しさん
NGNGそうだね。算術シフトになるか論理シフトになるかは処理系による。
Javaだとそれぞれ別の演算子がある。
0365デフォルトの名無しさん
NGNG論理シフトや算術左シフトは?
0366365
NGNGunsignedのシフトや、signedの左シフトは?
0367デフォルトの名無しさん
NGNG>>365 左シフトに論理も算術もない。
0368デフォルトの名無しさん
NGNG0369デフォルトの名無しさん
NGNG> 左シフトに論理も算術もない。
???
0370デフォルトの名無しさん
NGNGオーバーフローは無視。
0371デフォルトの名無しさん
NGNG初心者か? ならわかりやすく説明しよう。
左シフトだと右から新たなビットが入ってくる。
論理シフトだと考えれば0が入ってくる。
算術シフト(2倍)だと考えれば、正負によらず常に0が入ってくる。
どちらでも同じ。
0374デフォルトの名無しさん
NGNGやってみれば。
そういう動作は聞いたことがない。
0375デフォルトの名無しさん
NGNG0376デフォルトの名無しさん
NGNGsignedかつnegativeな整数に対する右シフトの振る舞いは実装定義。
0377376
NGNG0378デフォルトの名無しさん
NGNG0379デフォルトの名無しさん
NGNG0380デフォルトの名無しさん
NGNGvoid main() {
int n = 0x80ffffff;
printf("%d\n", n);
printf("%x\n", n);
printf("%d\n", n << 4);
printf("%x\n", n << 4);
printf("%d\n", n >> 4);
printf("%x\n", n >> 4);
}
0381デフォルトの名無しさん
NGNGsignedつーか負数だろ
0382デフォルトの名無しさん
NGNG0384デフォルトの名無しさん
NGNG0385デフォルトの名無しさん
NGNG0をいくらシフトしても変わらないのと同じじゃないの?
0386デフォルトの名無しさん
NGNGint へのポインター
*(&i) = 1;
*(&a1[0]) = 1;
*(&a2[0][0]) = 1;
int[] へのポインター
*(&a1) = 1; → NG:配列に整数は代入できない
*(&a2[0]) = 1; → NG:配列に整数は代入できない
int[][5] へのポインター
*(&a2) = 1; → NG:5つの要素を持つ配列の配列に整数は代入できない
関数呼び出しの引数に現れた場合
a2 == &a2[0][0]
a1 == &a1[0]
0387デフォルトの名無しさん
NGNG負の数の場合、符号ビットが変わったらまずいと思うんだけど。
負の数に正の数をかけても負の数のままのはずなのに、符号ビットまでうごいたら正の数になってしまう
0388デフォルトの名無しさん
NGNGやってみろよ?
11111111 << 1 = 1111110 だな。論理シフトでも同じだな。
10000001 << 1 = 1000010 になるとしたらこれは算術的に正しいのか?
因みにx86のアセンブラレベルでも論理左シフトと算術右シフトは同じものだぞ。
0389JPS ◆M0LaMzf5rY
NGNG自分の処理系が論理か算術か確かめる方法ある?
0390デフォルトの名無しさん
NGNG算術左シフトな。
0391JPS ◆M0LaMzf5rY
NGNG0392デフォルトの名無しさん
NGNGそれが算術シフトだろ。
0393387
NGNG0394JPS ◆M0LaMzf5rY
NGNGぜんぜんわかんないけどさ。
0395デフォルトの名無しさん
NGNGまたひとつ質問させてください。
変数の宣言はコードブロックの先頭でできますから、たとえば
int main(void) {
int i;
for (i = 0; i < 100; i++)
{
int k; <--これ
処理〜;
}
return 0;
}
なんて書き方や、
int main(void) {
int i;
処理〜
{
int k; <--これ
処理〜
}
return 0;
}
なんて書き方ができますよね。
これって、そもそも一般に通用するものなのでしょうか?
通用するとしたら、「良い書き方」「悪い書き方」なのでしょうか?教えてください。
0396JPS ◆M0LaMzf5rY
NGNGO(オウ)じゃないよね?
でもprintfの型指定市は%oだよね?
ちがったけ?
0397デフォルトの名無しさん
NGNGO12とやったら変数などと見分けがつかなくなるだろ。
0399JPS ◆M0LaMzf5rY
NGNG余裕で通用する。でも俺はあんましない。宣言はとりあえず関数の直後でやっちゃう。
でもたとえばwhileの2重ループとかで、毎回値を初期化する必要があるときとかはやるかな。
まあそれもfor使えばいいし。
0400デフォルトの名無しさん
NGNGfor(〜){int k;〜}for(〜){int k;〜}
とプログラム書いてみ。エラー出すこともある。
0402デフォルトの名無しさん
NGNGなんで?
0404デフォルトの名無しさん
NGNG0406デフォルトの名無しさん
NGNG8進数→octal
0407デフォルトの名無しさん
NGNGそんなに悪いとも思わないけど。
範囲がわかるし。長いんなら別関数にすれば?
0408JPS ◆M0LaMzf5rY
NGNGそうだったのか!なにげに英語分かったら覚えやすいよね。
おれなんかstdio.hのことステディオとか言ってたから・・・
スタンダードインプットアウトプットだよね?
0409デフォルトの名無しさん
NGNG0410デフォルトの名無しさん
NGNGE1 << E2でE1がunsigned typeなら、
シフトの結果は(E1 * (2のE2乗)) mod (E1が表せる最大の値 + 1)
E1がsignedかつ非負かつE1 * (2のE2乗)が元の型で表現できるならこの値。
それいがいの場合は(なんと)未定義動作だと。
よって、負の数を左シフトしたら間違い。
0411デフォルトの名無しさん
NGNGえ?ストゥドゥアイオーじゃないの?
0412デフォルトの名無しさん
NGNGOctopus.(image)
0414デフォルトの名無しさん
NGNG>>376で既出
0415デフォルトの名無しさん
NGNGsigned_negative左シフトは未定義
signed_negative右シフトは処理系定義
0416デフォルトの名無しさん
NGNG日本語では標準入出力
0418デフォルトの名無しさん
NGNG賛否両論あるね。というより、一長一短か。
短所は、コードを読んだ時に変数をどこで
定義しているかわかりにくい。
0420デフォルトの名無しさん
NGNG> signed_negative左シフトは未定義
これホントなの?
0421デフォルトの名無しさん
NGNG俺も未定義って見て驚いたので間違ってないか何度も読み直したが
どうやら本当らしい。
0422デフォルトの名無しさん
NGNG0423デフォルトの名無しさん
NGNGどこで見たの?
0425デフォルトの名無しさん
NGNG変数のスコープは最小限に絞るべきっていう考え方もあるから...
0426デフォルトの名無しさん
NGNGそりゃそうさ。
処理系によって
負数の表現が2の補数とは限らない。
0427デフォルトの名無しさん
NGNG俺はc99で見た。
0428デフォルトの名無しさん
NGNG0430デフォルトの名無しさん
NGNG0431デフォルトの名無しさん
NGNG0433デフォルトの名無しさん
NGNG0434デフォルトの名無しさん
NGNG0437デフォルトの名無しさん
NGNG左シフトは算術も論理も一緒になってるな。
0438420
NGNGとりあえず左シフトはunsignedまたは定数
でしかやった覚えないけど。勉強になりますた。
0439JPS ◆M0LaMzf5rY
NGNGコソコソ・・http://kuroneko22.cool.ne.jp/
0440デフォルトの名無しさん
NGNG0441デフォルトの名無しさん
NGNGどこに目をつけてんだYO!
0443デフォルトの名無しさん
NGNG規格準拠にしたければ、絶対値を取って正の数に対してやればよいじゃん。
2の補数を仮定してよいならunsignedにキャストしてやれば良い。
0444デフォルトの名無しさん
NGNGスレ違い。
0446デフォルトの名無しさん
NGNGunsignedにキャストしてシフト演算したらどうなるか分かる?
0447デフォルトの名無しさん
NGNG倍になる。
0448デフォルトの名無しさん
NGNG0449395
NGNG自分もレス書きたかったのですが、
白熱した論議に割り込むこともできない未熟者ですのでご勘弁を……。
結論としては、そう書くこともできるが賛否両論(あんまりやらない)、
関数分けなどうまく使えばそうする必要もない、ということですよね?
ありがとうございました。
0451デフォルトの名無しさん
NGNG0452デフォルトの名無しさん
NGNG0453デフォルトの名無しさん
NGNG2の補数で(signed int)1011111111111111
これをunsigned intにキャストして>>1してsigned intにキャストしたら?
0454デフォルトの名無しさん
NGNGでも、クイズ厨うぜぇ。
ここは基本的に質問スレなんだから別スレ立ててやってくれよ。
ところで、>>284 のコードは、前者も後者も結局何も仕事をしないと思うのだがどうよ?
0456デフォルトの名無しさん
NGNG0457デフォルトの名無しさん
NGNG処理系依存なのだが。
0459デフォルトの名無しさん
NGNG0460デフォルトの名無しさん
NGNG未定義と処理系依存をごっちゃにするなよ。
処理系依存は、処理系が確定すれば必ず動作は一定。
未定義は、本当に何が起こるかわからない。
0461デフォルトの名無しさん
NGNGsigned を unsigned にしたときにどうなるかも処理系依存でしょ?
0462デフォルトの名無しさん
NGNG本当に何が起こるのかわからないのは不定。
未定義はその名のとおり定義されていないだけ。
0463462
NGNG0464454
NGNG死ね。
どうして誰も、284 の引数が値渡しである事に気付いていないんだ。
前者と後者のコードはまったく同じ結果になるから、クイズとして成り立っていない。
0465デフォルトの名無しさん
NGNGもうネタはいいよ。
0467デフォルトの名無しさん
NGNG了解。はいクイズの件は終了。
0468デフォルトの名無しさん
NGNG284は正解者いたよね。
0469デフォルトの名無しさん
NGNGアホ。適当な事言うな。
implementation-defined,unspecifiedは実装選択の義務がある。
undefinedは無い。
0470デフォルトの名無しさん
NGNG11111000 になるのが算術シフトで
00001000 になるのが論理シフトじゃない?
0471デフォルトの名無しさん
NGNG処理系依存は、動作が確かめられればいつでも用いて良い。
未定義は、絶対に用いてはならない。
>>468
クイズとして成り立っていないなら、正解もクソも無いだろうに。
0472デフォルトの名無しさん
NGNG>>460も>>462も間違っているようだが。
0474デフォルトの名無しさん
NGNG462は十分間違ってるぞ。
0475474
NGNG0477デフォルトの名無しさん
NGNGUncertain (不定) なんて言葉が規格書にあっただろうか。
0478デフォルトの名無しさん
NGNG0480デフォルトの名無しさん
NGNG10000000 になればそれでいいのだが。
0481デフォルトの名無しさん
NGNG鼻から悪魔が出る処理系もあるので、うかつに使えませんが・・・
0482デフォルトの名無しさん
NGNG規格では未定義でも処理系によっては定義されていることもあるんじゃないかと
0483デフォルトの名無しさん
NGNG気持ちはわかるが、それは本論とは関係無い。
0485JPS ◆M0LaMzf5rY
NGNG>未定義とは、その結果どうなるかが、言語仕様として決められていないことを意味します。
>そして、その結果がどうなっても、そのC言語の処理系はは規格に合致しているとみなされます。
ってのとさ、
>不定と未定義の最も大きな違いは、不定のコードはプログラムとしては正しいが、未定義のコードは間違いであり、
>動作する保証すらないという所にあります。
ってなんか違わない?
0486デフォルトの名無しさん
NGNGF&A?藤子不二雄か?
0487デフォルトの名無しさん
NGNG「動作する保証すらない」という結果になってもC言語処理系としては正しい
0489デフォルトの名無しさん
NGNG規格にさえ反しなければ何をしようと規格に合致していると言えるだろ
ただそれでどうなってもしらないよ。と。
0490デフォルトの名無しさん
NGNG0491デフォルトの名無しさん
NGNG0492デフォルトの名無しさん
NGNG0495デフォルトの名無しさん
NGNG間違いってのはプログラマが使うことが間違っているという意味だろ。
規格に反するという意味ではなく。
0496デフォルトの名無しさん
NGNG逆だ。
昔のCは互換性がないほどバラバラだった。
それを無理矢理一つの企画に纏めたため、無理な動作が未定義となった。
0497デフォルトの名無しさん
NGNGプログラマーが使うかとコンパイラが実装してるかどうかは別ものだろ。
0498デフォルトの名無しさん
NGNG特にその処理系に特化したカスタマイズしたい場合は。
0499デフォルトの名無しさん
NGNG未定義のコードを書くこと自体が間違ってるんだから。
Cではそういうコードを書いてはいけないのよ。
0500デフォルトの名無しさん
NGNGそれもそうだし、あまりガチガチにすると様々な環境で使えなくなるんだろうね。
0501デフォルトの名無しさん
NGNG0502デフォルトの名無しさん
NGNG処理系依存は使えないと、Cそのものがほとんど使えないよね。
0503JPS ◆M0LaMzf5rY
NGNGでもしたらさ、結局処理系で定義してあったってそれ使うのは違うんじゃねーの?
ってかんじだべ?
そしたら処理系ごとでそれぞれ定義する必要ゼロじゃん?
でも定義してんのは使うからでしょ?
だったら規格でちゃんと決めろや( ゚Д゚)ゴルァ!
0504デフォルトの名無しさん
NGNGそれは間違っている。
x86 + VC++ で、ポインタや浮動小数点数の集合を ZeroMemory() を使わないで
項目事ので移入によって初期化するのは馬鹿げている。
0505デフォルトの名無しさん
NGNG命令はいいとして、標準以外のライブラリを使えないとかなりきついね。
0506デフォルトの名無しさん
NGNG俺、今朝は5時におきなきゃならんのに、
・・・回線切らずに氏ねそうです
0507デフォルトの名無しさん
NGNG決められんこともあると思うが・・・
0509デフォルトの名無しさん
NGNG0510デフォルトの名無しさん
NGNGつもりが無くても荒らしは荒らしだから、そこのところ理解しておいてくれ。
ちなみに、>>491 のような煽りも荒らしに分類される。
0512デフォルトの名無しさん
NGNG質問ないときはこんなもんだろ。
0513デフォルトの名無しさん
NGNG仕事や学校に逝かなければ良い。
0514デフォルトの名無しさん
NGNG昨日の方が低レベルだったけどな。
0515デフォルトの名無しさん
NGNGさっさと寝ろ
0517デフォルトの名無しさん
NGNGあらゆる場面で動くプログラムなんて書こうとは思わないし。
0518デフォルトの名無しさん
NGNGビットシフトを使う側に論理、算術の選択の余地は無いんだよ。
0519デフォルトの名無しさん
NGNGなるべく処理系を殺さないという C の設計思想を理解しろ。
そうでなければ自分で言語を定義せよ。
0520デフォルトの名無しさん
NGNGもう寝とけ。
明日、またここに来たときには、すでに今の議論は忘れ去れているだろうから。
・・・そしてまた同じことが一から議論されているという罠
0521デフォルトの名無しさん
NGNGいやC言語というか処理系の問題か。ろくな処理系がないな。
0522デフォルトの名無しさん
NGNG516 のどこが荒らしじゃないのか説明してもらおうか。
0524デフォルトの名無しさん
NGNG激しく同意。
未定義や不定が気に入らないなら、JavaかC#を使うがいいさ。
0525デフォルトの名無しさん
NGNG荒らしだよ。もう寝るよおれは。おやすみ。
0526デフォルトの名無しさん
NGNG忘れてしもうた。
0528デフォルトの名無しさん
NGNGところで>>284が「値渡し」ってどういう意味だ?
(またDQN登場か?)
0529デフォルトの名無しさん
NGNGこうやって糞プログラマーが大量生産されます。
0530デフォルトの名無しさん
NGNGNULL, bool(_Bool), 未定義, ... 最近はこのどれかだな。
0531デフォルトの名無しさん
NGNG分かりません。簡単にできる関数はないのでしょうか?
0532デフォルトの名無しさん
NGNG0533JPS ◆M0LaMzf5rY
NGNG未定義はだめだとして、不定を使う可能性は?
あり?
0534デフォルトの名無しさん
NGNGsprintf
0535デフォルトの名無しさん
NGNGポインタが渡されることを知らんのだろう。
0536デフォルトの名無しさん
NGNG試してみればわかるよ。
呼び出し元の配列は、決して変更されない。
0537デフォルトの名無しさん
NGNGint i;
printf("%d\n",i);
不定ってこういうのだろ?
0538デフォルトの名無しさん
NGNGそれを言ったらアセンブラの立場はどうなる。
それだけ自由度が高くて実装する側に委ねられている
言語っちゅーこった。
0539デフォルトの名無しさん
NGNG使わざるをえない状況になってから考えろ。
0540デフォルトの名無しさん
NGNGsprintf()
0541デフォルトの名無しさん
NGNGCには参照渡しなんてないでしょ
0542デフォルトの名無しさん
NGNG呼び出してみたし、ちゃんと変わるが?
(ネタだとしたら地味すぎるな…)
0543デフォルトの名無しさん
NGNG0546デフォルトの名無しさん
NGNG454はどう見てもネタだろ。
0547デフォルトの名無しさん
NGNGA.未定義や不定であることを知らなくても自由に使えるところです。
爆
0548デフォルトの名無しさん
NGNG***すれ立てるまでもない質問はここで 第25刷***
http://pc3.2ch.net/test/read.cgi/tech/1036597434/l50
いや、むしろイタ違い・・・サイト違い・・・2ちゃん語辞書引け
0550デフォルトの名無しさん
NGNG0551デフォルトの名無しさん
NGNGまあ、そういうアドベンチャーゲームも子供の遊びとしてならいいけドナー
大人ならドキュメントちゃんと読もうや。
0552デフォルトの名無しさん
NGNGi = i++;
お前はこれでもやっとけ。
0553デフォルトの名無しさん
NGNG0556デフォルトの名無しさん
NGNGあなたはドキュメントを全部読んで理解してから使っているのかと小(略
0558デフォルトの名無しさん
NGNGその手のスレッド、初心者板以外にもあるのか
0559デフォルトの名無しさん
NGNG0560デフォルトの名無しさん
NGNGhttp://lagendra.s.kanazawa-u.ac.jp/ogurisu/manuals/c/C-faq/C-faq-11.html#11.33
0562デフォルトの名無しさん
NGNG11.35:
i = i++の動作が未定義だとうるさくいう人がいるけれどANSI準拠のコンパイラで試して私
が思うとおりの結果を得た。
A:
未定義の動作に出くわしたらコンパイラは好きなように振る舞う(実装が定義した動作、
あるいは未規定の振る舞いに出くわしたときにもある程度好きなように振る舞う)。その中
にはあなたが期待した結果も含む。こんなことに頼るのは馬鹿げている。質問11.32と
11.33と11.34を参照のこと。
0563デフォルトの名無しさん
NGNG0564デフォルトの名無しさん
NGNGアフォ。それは典型的な未定義動作の例だ。
1つの式の中で同じlvalueを何回も変更したら、結果は未定義。
0565デフォルトの名無しさん
NGNGそれ昨日もやったな。
評価の順番が関係する。
0566デフォルトの名無しさん
NGNGi++はiに1を足して、足す前の値を返すだろ。
それをiに入れたらどうなるかわからない。
1が足されているかもしれないし足されていないかもしれない。
0567デフォルトの名無しさん
NGNG0568デフォルトの名無しさん
NGNGそんな浅はかなことは言ってはいけない。
俺はi=i++を実行したため、FreeB○D-MLから迫害された。
・・・ってなことも起きます。
0570デフォルトの名無しさん
NGNGC FAQくらい自分で読めよ。
0571デフォルトの名無しさん
NGNG殺されてもCに対しては文句は言えません。
0572デフォルトの名無しさん
NGNGi=i++
でいったい何がしたいのか理解できないのだが。
他の手段はいくらもあるだろうし
こんな記述に固執する必要性は全くない。
0574デフォルトの名無しさん
NGNG今もっている参考書に書いてなかったら、本屋へ行って買って来い
0576デフォルトの名無しさん
NGNG信者だからですか(藁
0577デフォルトの名無しさん
NGNGttp://homepage2.nifty.com/rohizuka/ka/pa_003_a.htm
0578デフォルトの名無しさん
NGNG0579デフォルトの名無しさん
NGNGまた引っかかった漏れは一体・・・これで7度目だよ・・・
0580デフォルトの名無しさん
NGNG書ける(文法違反にならない)ってだけだろうね。
i=i+2=i+3なんてやるとi+2は左辺にならないって言われるだろうし。
0581JPS ◆M0LaMzf5rY
NGNGあぶねー578と579のおかげだ・・・
>>574
おなじlvalueってiのこと?
たとえばA=B=3はいいけどA=A=3は無理ってこと?
0582デフォルトの名無しさん
NGNG0583デフォルトの名無しさん
NGNG他の手段はいくらもあるだろうし
こんな記述に固執する必要性は全くない。
使うときは i++; というふうに単独で。
0584デフォルトの名無しさん
NGNG1 行目と 2 行目が全然繋がっててないよ。
0585デフォルトの名無しさん
NGNGそんなん素直に
i+=2;
i+=3;
でいいだろ。
0587デフォルトの名無しさん
NGNGもう定番だから、「pa_003_a」 と出てきた時点で事前回避してくれ。
0588デフォルトの名無しさん
NGNGそんなん素直に
i += 2 + 3;
でいいだろ。
0590デフォルトの名無しさん
NGNGそんなん素直に
i += 5;
でいいだろ。
0591デフォルトの名無しさん
NGNGお前いい加減しつこいな。
C FAQくらい自分で読めっていってるんだよ。
0592デフォルトの名無しさん
NGNGそこまで禁止するのは早計。
単に、インクリメント/デクリメントを使った識別子は、副作用完了点までに
複数回使わなければいいだけ。
*p++ = ' '; とか、p[i++] = 123; とかもダメなのかい?
0593デフォルトの名無しさん
NGNGこういうのもどうなるかわからないんだよね。
0594デフォルトの名無しさん
NGNGどっちでもいいだろ。
そんなのコンパイラが最適化する。
0595デフォルトの名無しさん
NGNGこれが最強
0596デフォルトの名無しさん
NGNG未定義。
0598デフォルトの名無しさん
NGNGくまなく探した?
ブラウザの検索機能を使えばみつけやすいと思うんだけど
0599デフォルトの名無しさん
NGNG0600598
NGNGhttp://www.catnet.ne.jp/kouno/c_faq/c3.html
これの3.3にあるじゃん
0601デフォルトの名無しさん
NGNG載ってるから言ってるんだよ。
お前の目は節穴か、ボケ!
答えは「無理ではない」
0602JPS ◆M0LaMzf5rY
NGNGありますた。すまそ。
http://www.catnet.ne.jp/kouno/c_faq/c3.html#0
3.2
これでつね?
0603598
NGNGi=i++のことじゃなかったか。
0604JPS ◆M0LaMzf5rY
NGNG>>601
無理ではないってことはなんか違うってこと?
とりあえずi=++iはだめだよね?
ひとつの式で2回値を変更してるから。
a=b=3はa=(b=3)だからぜんぜんおkだべ?
0605デフォルトの名無しさん
NGNG581の質問のことだよ。
0606デフォルトの名無しさん
NGNGどこに載ってる?
A=A=3 は、A に対する副作用がいつ発生するか決まってるの?
0607デフォルトの名無しさん
NGNGこれをそれぞれ1から10まで変化させます
このとき,a[i]=a[j] (i≠j) の時を除外して
考えたいのですがどう表現すればいいでしょうか?
思いつくのはif文で || でひたすら結んでいくことですが
これだとこの場合10個中2個を選ぶので
10C2=45 個も書かないといけないのは面倒です
よろしくお願いします
0608デフォルトの名無しさん
NGNGtypedef double p[N]; とすると、
double a[N][N]とdouble a[][N]とp *aが全部同じだというのは
わかってる?
0611デフォルトの名無しさん
NGNGだよなあ?
わざわざ質問するということはもっと複雑なのか、、、
0613デフォルトの名無しさん
NGNG>>609
お前ら何言ってんだ。
> A=A=3
どの辺のオブジェクトを変更してんだ?
0614デフォルトの名無しさん
NGNG前に SEND MORE MONEY を解いた時、バカなコードしか書けなかった。
0615613
NGNG0617デフォルトの名無しさん
NGNG何を唐突に・・・
0618デフォルトの名無しさん
NGNGよく分からん.等しくなるようなpairが1つでもあったらすべての処理をShinainoka?
0619デフォルトの名無しさん
NGNGしたいのだと思われる。
いろんなやり方があるが、10個くらいなら
int a[10], flag[10], i;
for (i = 0; i < 10; i++) {
flag[10] = 0;
}
for (i = 0; i < 10; i++) {
if (flag[a[i]-1]) { 重なっている }
else flag[a[i]-1] = 1;
}
とやればよいのでは。
0620デフォルトの名無しさん
NGNG>>611
馬鹿でした.すいません
実はわかりやすくするために配列で変数を書いたのですが
実際にはわかりやすいように変数ごとに違う英単語を
使ってたので話がややこしくなってました
0621デフォルトの名無しさん
NGNG増分されるという事でよろしいか?
0622デフォルトの名無しさん
NGNGそれはいいだろ?
0623デフォルトの名無しさん
NGNGあ,そういうことです
まったく解決してませんでした(;´Д`)
今から解読してみます
0624デフォルトの名無しさん
NGNGよくねーよ(藁
0625デフォルトの名無しさん
NGNG未定義だって言ってるだろが。
0626デフォルトの名無しさん
NGNGそうか?
どちらのi++が先に実行されるかわからないけど、確実に二回i++を行うだろ?
0627デフォルトの名無しさん
NGNGそれ、バブルソートよりももっと無駄な比較が発生しないか?
それなら素直に if をずらっと並べた方がマシだ。
0628デフォルトの名無しさん
NGNGもうネタは結構です。
0629デフォルトの名無しさん
NGNGC FAQくらい自分で読め。
0630デフォルトの名無しさん
NGNGもっぺんC-FAQの11.33読み直せや。
0631デフォルトの名無しさん
NGNGカンマで副作用完了点が発生するという考えは間違っているのか?
0632デフォルトの名無しさん
NGNGint *ipa[10]にその変数たちのアドレスをひとつずつ入れてゆけば?
0634デフォルトの名無しさん
NGNGカンマ演算子と関数のパラメータ区切りのカンマは違うぞ。
0635632
NGNGenumで名前をつらねていって、それをintの配列の添え字にした方がいいか。
比較するときは裸の数字を使って。それ以外はenumで定義した名前を使って。
0636デフォルトの名無しさん
NGNG0637デフォルトの名無しさん
NGNG607 は、0 〜 9 の順列を取りたいんじゃないのか?
0638デフォルトの名無しさん
NGNG理解していなくてもi=i++やfunc(i++,i++)なんてコードは書きませんから。
0639デフォルトの名無しさん
NGNGあなたが C の仕様ちゃんと理解してるのはわかったから、早く >>631 に
答えてくれ。
0640デフォルトの名無しさん
NGNGそれで比較されていますか?
a[i]とa[j] i≠j の比較なんですが・・
よくわからないです
>>632
アドレスを入れるとどうなるのですか?
>>635
よくわからないです
0641デフォルトの名無しさん
NGNG挙げんなっつーの。
0642デフォルトの名無しさん
NGNG0643デフォルトの名無しさん
NGNG0644デフォルトの名無しさん
NGNG>>619には全ての数字が異なっているようにしたいと書いてあるけど
0645デフォルトの名無しさん
NGNG>>631
0646デフォルトの名無しさん
NGNGそういうのを、0、1、2、3、4、5、6、7、8、9 の順列って言わないか?
0647デフォルトの名無しさん
NGNG0648デフォルトの名無しさん
NGNGこれでもいいんだろ?順列といえる?
0649デフォルトの名無しさん
NGNG誰も書かないような分かりにくい書き方を好んで書くのが真のC使いだろ(藁
0650648
NGNG0から9までだっけ?
じゃあループして入れればいいじゃん(笑)
0651デフォルトの名無しさん
NGNGそうです
例えば変数3個で i,j,k だとすると
for (i=0 ; i<=10 ;i++){
for (j=0 ; j<=10 ;j++){
for (k=0 ; k<=10 ;k++){
でまわして,このなかでも i≠j i≠k j≠k
の場合を考えたいのです
変数が10個だと 10C2通り必要なので
いちいち全部書くのは面倒なのです
0652デフォルトの名無しさん
NGNGおバカな煽り厨が1人混ざってんな。
0653デフォルトの名無しさん
NGNG0654648
NGNGじゃあa=0;b=1;c=2とかいちゃえ。
0655デフォルトの名無しさん
NGNGそう思っているのは未熟なおまえだけ。
とっとと消えろ。カス。
0656デフォルトの名無しさん
NGNG0657デフォルトの名無しさん
NGNG{
if (*p != *q) return *p - *q;
else if (! *p) return 0;
else return strcmp(++p, ++q);
}
これはOK?
0658614
NGNGfor (i=0 ; i<=10 ;i++){
for (j=0 ; j<=10 ;j++){
if(j == i) continue;
for (k=0 ; k<=10 ;k++){
if(k == i || k == j) continue;
と書いた。
もっとマシな方法があったらキボンヌ。
0659デフォルトの名無しさん
NGNG誰もそんな話はしていない。
0660デフォルトの名無しさん
NGNGお前の事か。
0661デフォルトの名無しさん
NGNG0662デフォルトの名無しさん
NGNGお。なんかカッコいいね。実用性はともかく。
0664デフォルトの名無しさん
NGNG奥村本を嫁。
順列のとこ。
0665663
NGNG0666デフォルトの名無しさん
NGNG実用性って…
whileで書いてもまったく同じコードが出るが?
0668デフォルトの名無しさん
NGNG,. -───-: 、
/::::::::::::::::::::::::::::::::\
/ '':::::::::::::::::::::::::::::::''''' ヽ
!::::::::::ィ::ハ:::;::::::::::::::::::::::::::!
i::|:::i::/l/ i;::ト、:、:::i:::::::::::::::i
|::i/レ'-i'' 'ヽi-ヾ,ヽ!:::::::::::::l
|::ハ -‐- -─- i::::::::::::::l
|::::::l| | | | |::::::::::::::!
|::::::ヽ | r---、! l,.!::::::::::::::l
l::::::::::::`;'-'=,‐,='r''i~!:::::::::::::::|
!:::::::l、::r'"´'. ' l ' i::::::::iヽ:::l
i:l、:::|./、_____,l::::;l:/‐'ヽ!
'!ヽ;i'>l____,.//-‐'''"ヽ
!/ |.VVVVVVVV.lV\!. i
| | | l
0669デフォルトの名無しさん
NGNG0670デフォルトの名無しさん
NGNG順列生成だってさ
0671デフォルトの名無しさん
NGNG貧乏人は低レベルなところでちょこちょこやってろ。
0673デフォルトの名無しさん
NGNG>>649をみろ。
0674デフォルトの名無しさん
NGNGそう。
こういう再帰はループとまったく同じコードになる。
0675デフォルトの名無しさん
NGNGわかりやすいコードだね。
やはり再帰はエレガントで良い
0676デフォルトの名無しさん
NGNG0678デフォルトの名無しさん
NGNG0679デフォルトの名無しさん
NGNG難しそうに見えてかっこいいから(藁
0680651
NGNGこれは俺へのレスですか?
考えてみます
0681デフォルトの名無しさん
NGNG二分木扱うときは再帰使うと実にうまく書けると思ったけど、strcmpは・・・
0682デフォルトの名無しさん
NGNG真のC使いハケーン(藁
0683デフォルトの名無しさん
NGNG全然違うだろ(ワラ
さっきからの未定義論争だよ
0684531
NGNG0685デフォルトの名無しさん
NGNGqsortとか2分探索とか…
0686デフォルトの名無しさん
NGNG0687デフォルトの名無しさん
NGNG二つしかあげられませんでした。
0688デフォルトの名無しさん
NGNG0689デフォルトの名無しさん
NGNGクイックソートは分かるが、二分探索(二分木じゃないよな?)はループの方がわかりやすくないか?
0690デフォルトの名無しさん
NGNG0691デフォルトの名無しさん
NGNG0692デフォルトの名無しさん
NGNG0693デフォルトの名無しさん
NGNG0694デフォルトの名無しさん
NGNGsize_t size, int (*compar)(const void *, const void *))
{
if (nmembers == 0) {
return NULL;
} else {
size_t half = nmembers / 2;
void *mid = (char *)base + size * half;
int r = compar(key, mid);
if (r == 0) {
return mid;
} else if (r < 0) {
return bsearch(key, base, half, size, compar);
} else {
return bsearch(key, mid + size, nmembers - half - 1, size, compar);
}
}
}
0695デフォルトの名無しさん
NGNG> free((char *)c)
これ変だよね。freeはvoid *を受け取るのにわざわざキャストしている。
0696デフォルトの名無しさん
NGNG大きければ右半分を探す。
わかりやすいじゃないか。
0697デフォルトの名無しさん
NGNGvoid *bsearch(const void *key,const void *base,size_t nmemb,size_t size,int (*compar)(const void *,const void *))
{
const unsigned char *left,*middle,*right;
int result;
left=(const unsigned char *)base;
right=left+(nmemb*size-size);
while(left<=right){
middle=left+((right-left)/size/2*size);
result=(*compar)(key,middle);
if(result==0)
return (void *)key;
else if(result<0)
right=middle-size;
else
left=middle+size;
}
return NULL;
}
0698デフォルトの名無しさん
NGNG0699662
NGNG試してみたけど、BCC(標準設定)では最適化されず、
再帰のままのコードを吐いたよ。
VC++(Releaseモード)では確かにループに展開された。
というわけで、再帰がループと同じになるとは
決め付けない方がいいね。
0700651
NGNG0702デフォルトの名無しさん
NGNGループで書くとややこしいアルゴリズムはまず再帰で書いてみる。
それで十分効率の良いコードになったなら、わざわざわかりにくいループに
書き直す必要はない。
0703デフォルトの名無しさん
NGNGそれは最適化オプションの有無で違うんじゃないのかい?
0704デフォルトの名無しさん
NGNG簡単な方法では >>658
気の利いた方法では >>664、>>670
0705651
NGNGなるほど
読んでみます
0706662
NGNGそれなら納得。
>>703
標準設定で試しただけだから何とも言えんが、どちらにしても
666の
> 実用性って…
> whileで書いてもまったく同じコードが出るが?
のように処理系に依存する話をそのように決め付けるのは
ヤバいね。
0707デフォルトの名無しさん
NGNG簡潔だった気がする。
0708デフォルトの名無しさん
NGNG0709デフォルトの名無しさん
NGNGとうの昔に。
0710デフォルトの名無しさん
NGNG0711デフォルトの名無しさん
NGNG0712デフォルトの名無しさん
NGNG0713デフォルトの名無しさん
NGNG0715デフォルトの名無しさん
NGNG俺はもう寝る。
0716デフォルトの名無しさん
NGNG負の数をシフトしたら結果は未定義。
符号付の数を左シフトしてあふれても結果は未定義。
配列の内容をそのままコピーして関数の引数に入れるような機能は
Cにはない。そういうことをしたければ、構造体で囲うなどしなければならない。
そうでもしない限り、配列の先頭アドレスのポインタ値が仮引数に(値渡しで)
渡される。
関数呼び出しの実引数を区切るカンマは、カンマ演算子ではない。
sequence pointではない。
0717デフォルトの名無しさん
NGNG疑問 2 点。
「負の数をシフトしたら結果は未定義」 という事は、(signed)i >> c; は OK?
「カンマ演算子ではない」 = 「sequence pointではない」 の根拠は?
0718717
NGNG(unsigned)i >> c;、(unsigned)i << c;
0719デフォルトの名無しさん
NGNGunsignedにキャストすれば結果は決まっている。
「カンマ演算子でないから」というわけじゃない。
「カンマ演算子ではなく、sequence pointでもない」
0720デフォルトの名無しさん
NGNG処理系定義。
0721デフォルトの名無しさん
NGNGで、これで済む話を、みんな延々と何やってたのだろうか。
0722デフォルトの名無しさん
NGNG> 「カンマ演算子ではない」 = 「sequence pointではない」 の根拠は?
719が模範解答だけど、別の答えとしては
副作用完了点の定義に含まれるのはカンマ演算子で、
関数の実引数の区切りは含まれていない。
この場合に副作用が完了するのは、実引数の評価が
すべて完了した後となる。
0723デフォルトの名無しさん
NGNGちなみに負の数の右シフトは未定義ではなく、処理系定義だよ。
0724デフォルトの名無しさん
NGNGC++ だと、こんなに簡単なのな。
vector<int> v;
for(int i = 0; i <= 9; i++)
v.push_back(i);
while (next_permutation(v.begin(), v.end()))
{
...
}
0725724
NGNG0726デフォルトの名無しさん
NGNG0727デフォルトの名無しさん
NGNG0728デフォルトの名無しさん
NGNG0729デフォルトの名無しさん
NGNG#define first(n) ((unsigned) ((1U << (n)) - 1U))
enum{N=5,K=2};/* 0-NからK個選ぶ各組み合わせに対する全順列を表示 */
int basicnum[K];
void show_perm(int *bn){
int i,k=1,t,c[K+1];
for(i=1;i<=K;i++)c[i]=i;
while(k<K){
if(k&1) i=c[k]; else i=0; t=bn[k];bn[k]=bn[i];bn[i]=t;
for(k=0;k<K;k++)printf("%d ",bn[k]); /* ここで各場合(bn)に対する処理 */
printf("\n"); k=1; while(c[k]==0){c[k]=k;k++;} c[k]--;
}
}
unsigned nextset(unsigned x){
unsigned smallest, ripple, new_smallest, ones;
smallest = x & -x; ripple = x+smallest; new_smallest = ripple & -ripple;
ones = ((new_smallest/smallest)>>1)-1;
return ripple|ones;
}
void setbasicnum(unsigned s)
{int i,j=0; for (i=1; i<=N; i++) { if (s&1) basicnum[j++]=i-1; s>>=1; }}
int main(void){
int i=1; unsigned x=first(K);
while(!(x&~first(N))){setbasicnum(x);show_perm(basicnum);x=nextset(x);i++;}
return 0;
}
0730デフォルトの名無しさん
NGNGの繰り返しだな
0731729
NGNGN(アルゴリズムの関係上sizeof(int)*8ビット以下の数),K(<N)を適当にいじって
みてください。
ex.(N=5,K=2:0-4の内の2つを選んだ時の順列)
$ hoge
0 1
1 0
0 2
2 0
1 2
2 1
0 3
3 0
1 3
3 1
2 3
3 2
0 4
4 0
1 4
4 1
2 4
4 2
3 4
4 3
0732デフォルトの名無しさん
NGNGおまえらが馬鹿なのか? それともC言語の仕様が難しいのか?
0733デフォルトの名無しさん
NGNG0734デフォルトの名無しさん
NGNG0735デフォルトの名無しさん
NGNGまともに解説しているヘルプや本がない。
0736デフォルトの名無しさん
NGNG>>735
それは確かに。
VC++ とかも 「ANSI 準準拠」 とか言われたら大体信じちゃうよなあ。
0737デフォルトの名無しさん
NGNG0738デフォルトの名無しさん
NGNG0739デフォルトの名無しさん
NGNG0740デフォルトの名無しさん
NGNGそしてプログラム終了時はfreeかdeleteをつかうわけですが、
ただ単にfree(node)やdelete nodeとするようにポインタ名に対して1回だけ
やってやればいいのでしょうか?
それとも領域を確保したすべてのポインタを指定して開放しないと
いけないんでしょうか?
0741デフォルトの名無しさん
NGNG確保したすべてのポインタに対して開放処理が必要。
0742デフォルトの名無しさん
NGNG> プログラム終了時はfreeかdeleteをつかうわけですが
いいえ、まともなOSや処理系ならば、
プログラム終了時にはfreeかdeleteをつかう必要はありません。
0743デフォルトの名無しさん
NGNGワラタ
0744デフォルトの名無しさん
NGNGまたその話ですか?
0746デフォルトの名無しさん
NGNGとにかくfreeとかdeleteしたいときにどうするか
ということなら、malloc or newした回数だけ
free or deleteする必要がある。
0747デフォルトの名無しさん
NGNG0748デフォルトの名無しさん
NGNG0749720
NGNGプログラム側で開放しなくても終了時にOSがかってに開放してくれるんですか?
C++始めたばかりでよくしらんのですが、それはメモリリークを引き起こすんでは
ないでしょうか?
>>741、746
助言ありがとう御座いました
0750デフォルトの名無しさん
NGNG引き起こさない。
スタック領域やグローバル変数領域がちゃんと解放されるのと同じこと。
0751デフォルトの名無しさん
NGNG引き起こす環境もあるかもしれんが、
そういう環境ではどうせまともにプログラミングなんかできない
から、解放しようとしても無駄。
0752デフォルトの名無しさん
NGNG少なくともUnix系OSやWindowsやMax OS Xでは大丈夫だよ。
0753デフォルトの名無しさん
NGNG環境依存なプログラミングはできるだけするな。
0754720
NGNG0755デフォルトの名無しさん
NGNGMacOS9以下はまともにプログラミングできてましたが?
0756デフォルトの名無しさん
NGNG> スタック領域やグローバル変数領域がちゃんと解放されるのと同じこと。
C/C++でちゃんとやると決まっていることとOSがやってくれるに違いないは違う。
0757デフォルトの名無しさん
NGNGプログラム終了時はデストラクタが呼ばれるんじゃないか?
0758デフォルトの名無しさん
NGNG面白すぎるぞ。
0759デフォルトの名無しさん
NGNGnew したものを自動で解放してくれる処理系があったら知りたい。
で、スレ違い。
0760デフォルトの名無しさん
NGNG0761デフォルトの名無しさん
NGNG簡単に試験できるんだから、まず試してみろ。
0762デフォルトの名無しさん
NGNG0763デフォルトの名無しさん
NGNGスレ違いだが興味ある。
GC 管轄外のメモリ機能を使う以外に、どんな可能性がある?
0764デフォルトの名無しさん
NGNG具体例プリーズ
0765デフォルトの名無しさん
NGNG0766デフォルトの名無しさん
NGNG0767デフォルトの名無しさん
NGNG0768デフォルトの名無しさん
NGNGないとリークする。
CやC++のプログラムを機械的にGCmalloc()を使うように書き換えたりする
ときに、こういう事が起きる。
0769デフォルトの名無しさん
NGNG0770デフォルトの名無しさん
NGNGそれに、参照を消し忘れるとリークするのは
どんなGCでも同じ。
0771デフォルトの名無しさん
NGNGVB は?
0772770
NGNG0773デフォルトの名無しさん
NGNGそれより前のVBは、Perlとかと同じ参照カウント方式の疑似GC。
0774デフォルトの名無しさん
NGNG0775デフォルトの名無しさん
NGNG双方向リスト作ったりすると即リーク。
0776デフォルトの名無しさん
NGNG開けっ放しのストリームは閉じられることが保証されていたと思うけど。
0778デフォルトの名無しさん
NGNG終了したプロセスの資源を解放するのはOSのお仕事。言語仕様で規定しても意
味がない。
0779デフォルトの名無しさん
NGNGメモリを「解放」する関数だ。
さっきから開放と言ってる馬鹿共はCを使う資格はない。
http://www.linux.or.jp/JM/html/LDP_man-pages/man3/free.3.html
0780デフォルトの名無しさん
NGNG0781デフォルトの名無しさん
NGNGたかが漢字間違いぐらいで鬼の首を取ったようなことを言うなよ
0782デフォルトの名無しさん
NGNG0783デフォルトの名無しさん
NGNGうるせー。馬鹿共。
0784デフォルトの名無しさん
NGNG(・∀・)ニヤニヤ
0785デフォルトの名無しさん
NGNG意味あるだろ。
0786デフォルトの名無しさん
NGNGそれを言ったらストリームを閉じることだってOSの仕事になるんじゃ・・・
0787デフォルトの名無しさん
NGNG> >>778
> それを言ったらストリームを閉じることだってOSの仕事になるんじゃ・・・
ちがう。Cで規定されているのは単にストリームを閉じるためでなく、ファイ
ル構造体のバッファをフラッシュするため。ユーザプロセスに割り当てたメモ
リにはそんな話はあてはまらない。
0788デフォルトの名無しさん
NGNG「開放」と書く人が多いんで、最近はそうするようにしてた。
結局どっちが正しいの?
ぐぐってみました。
「free 解放」 約15100件
「free 開放」 約19000件
0789デフォルトの名無しさん
NGNG0790デフォルトの名無しさん
NGNG>>778には資源を解放って書いてあるじゃん。資源はメモリだけのことじゃないぞ。
0791デフォルトの名無しさん
NGNGいみわからん
0792デフォルトの名無しさん
NGNG> 結局どっちが正しいの?
「free 解放 C言語」 約1,970件
「free 開放 C言語」 約1,240件
ですが何か?
0793デフォルトの名無しさん
NGNG0794デフォルトの名無しさん
NGNG0795デフォルトの名無しさん
NGNGfree関数はptrが指す領域を解放し、その後の割付けに使用できるようにする。ptrが空ポインタ
の場合、何も動作しない。それ以外の場合、実引数がcalloc関数、malloc関数若しくはrealloc関数によっ
て以前に返されたポインタと一致しないとき、又はその領域がfree若しくはreallocの呼出しによって解放
されているとき、その動作は未定義とする。
ですが何か?
0797788
NGNG×習う
○倣う
0798デフォルトの名無しさん
NGNG何も分かってないJPSは黙ってろ。
0799798
NGNG0800デフォルトの名無しさん
NGNG0801デフォルトの名無しさん
NGNGなんつーふうにやった場合、
最初の\0の後は0で埋められるんでしたっけ?
0802デフォルトの名無しさん
NGNG0803デフォルトの名無しさん
NGNGint hairetu[MAXSIZE];
について、main()の中で宣言するよか外で宣言するほうが
MAXSIZEを大きくできるのはなんでなんですか?
0804デフォルトの名無しさん
NGNG一般にスタックのサイズは小さいから。
関数内でもstaticつければ多く取れるけど
0805デフォルトの名無しさん
NGNG0806801
NGNG0807デフォルトの名無しさん
NGNG釣られるな
0808801
NGNGいいや、自分で調べま。
0809デフォルトの名無しさん
NGNGあーすまんそうだ。
初期値を全く与えないときは何が入るかわからないんだった。
0810デフォルトの名無しさん
NGNG以下はどのようなときに成り立つのでしょうか?
aが4よりとても小さいときだとは思うのですがどうなのでしょうか?
if(a << 4) {
}
0811デフォルトの名無しさん
NGNG0812デフォルトの名無しさん
NGNG{
int size = 0;
struct stat st;
if(!stat("file.txt",&st)) size = (int)st.st_size;
return size;
}
は正常に値が返ってくるんですが、
"file.txt"を"../file.txt"という風に相対パスにすると、
stat("file.txt",&st)が-1になります。
ちなみに、ファイルはちゃんとあります。
どうすればいいんでしょうか?
0813デフォルトの名無しさん
NGNGもうネタはいいよ・・・
0814812
NGNGネタじゃないんですけど、、
初心者ですみません。。
0815813
NGNGstruct statってなんだ?
stat("file.txt" , &st)
ってなんだ?
関数なのか構造体なのかさっぱりわからん。
これがネタでなくてなんだというんだ。
0817デフォルトの名無しさん
NGNG0818デフォルトの名無しさん
NGNG0819デフォルトの名無しさん
NGNG0820デフォルトの名無しさん
NGNG0821デフォルトの名無しさん
NGNG../file.txtは親ディレクトリにあるfile.txtを指す
./file.txtでしょ
0822デフォルトの名無しさん
NGNGうるせーな。ネタだよネタ。おまえらは釣られたんだよ(w
0823デフォルトの名無しさん
NGNGそれもネタですか?
0824デフォルトの名無しさん
NGNGそれはともかく
0826デフォルトの名無しさん
NGNGこれ何?
0827デフォルトの名無しさん
NGNGドラえもんの一場面
0828デフォルトの名無しさん
NGNGここで POSIX システムコールを扱っていいなら、Win32 API も扱っていい事に
なるわけだが・・・。
0829デフォルトの名無しさん
NGNGA=5;
strcpy(file,"NoA.txt",A)
"No5.txt"を読み込みたいのですが、↑のように書くと
"NoA.txt"は見つかりません。というふうなエラーが出ます。
代入の仕方を教えてください。
0830デフォルトの名無しさん
NGNGsprintf()
つーか strcpy() の機能をもっとよく理解すれ。
0831デフォルトの名無しさん
NGNGつーか <string.h> しろ。
いや、入門書から読みなおせ。
0832デフォルトの名無しさん
NGNG0833831
NGNG0834デフォルトの名無しさん
NGNGあの質問はstatがどんなものかなんて関係ないだろ。fopenでも同じことが起きるんだし。
プログラム以前の問題だからスレ違いといえばスレ違いだが。
0835デフォルトの名無しさん
NGNGA=5;
strcpy (file, &(((char*)"NoA.txt")[2]=A+'0')-2);
処理系によってはクラッシュします。
gccの場合は-fwritable-stringsオプションを指定する必要があります。
0836デフォルトの名無しさん
NGNG文字列定数を書き換えるのか(^_^;)
gccって書き換えられる領域に置くように指定することもできるんだな。
0837デフォルトの名無しさん
NGNGまたそういうネタを・・・
そういえば、文字列リテラルって const char * なのか?
キャスト入ってるけど・・・
0838デフォルトの名無しさん
NGNG文字列スレッドで誰かが特に決まっていないんだねって言っていたけどどうなんだろう。
VC++6.0やBCCはchar *だけど。
0839デフォルトの名無しさん
NGNG0840デフォルトの名無しさん
NGNG0841デフォルトの名無しさん
NGNGfile[2]='0';とか
0842デフォルトの名無しさん
NGNGやるとしたら、
char *file[]= { "No1.txt", "No1.txt", "No2.txt", "No3.txt", "No4.txt", "No5.txt" };
つーか 830-831 でマジレス出てるし。
0843デフォルトの名無しさん
NGNG0844デフォルトの名無しさん
NGNG<string.h> がインクルードされてれば、829 のコードはそもそもコンパイル
通らないわけだが。
それで間違ってるって気付けるだろうに。
つーか 842 のどこに 「解決法」 って書いてある?
0845デフォルトの名無しさん
NGNGネタに飢えてるわけだな。
0846デフォルトの名無しさん
NGNG0848デフォルトの名無しさん
NGNG0849デフォルトの名無しさん
NGNGだからどうしたの?
0850デフォルトの名無しさん
NGNGお前こそどうしたんだ?
0851デフォルトの名無しさん
NGNGお前は誰だ?
0852デフォルトの名無しさん
NGNG0853829
NGNG0854デフォルトの名無しさん
NGNG0855デフォルトの名無しさん
NGNG僕はVineのemacsでCをやりたいから教えてください、って言ったらこの本紹介されたのに・・・・・嘘吐き!!もうキャンセルできないよう。。。。。
0856デフォルトの名無しさん
NGNG> ソース丸投げ、宿題、書籍 は専門の別スレがあるからそこへ逝ってくれ。
>
> 上記を守らない書き込みをした場合、その結果は禿しく未定義とする。
0857デフォルトの名無しさん
NGNG0858デフォルトの名無しさん
NGNG0859デフォルトの名無しさん
NGNG0860デフォルトの名無しさん
NGNG32 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/
0861デフォルトの名無しさん
NGNGしかし、dat 落ちのままのスレが 12 本って、このスレの回転が無駄に早い事が
分かるな (;´Д`)
0862デフォルトの名無しさん
NGNGやはり、Cの未定義の結果は多くの場合、coreを吐くからな。
(core = 煽り合い)
仕方がない
0863デフォルトの名無しさん
NGNG0864JPS ◆M0LaMzf5rY
NGNG0865デフォルトの名無しさん
NGNG860 の文字列が全部、スラッシュで区切られた 「ワラタ」 に見えたYO・・・
眼科に逝くべきか、精神科に逝くべきか。
0866デフォルトの名無しさん
NGNGhttp://ワラタ.ワラタ.ワラタ/ワラタ/ワラタ.ワラタ/ワラタ/ワラタ/
見えるかいな
086760cm浮き上がるストレート
NGNGうまく説明できませんが、printf("%s","%-30s","abcde");みたいに。
今は、あらかじめ幾つも作っとく方法でやっているのですが.
0868デフォルトの名無しさん
NGNG0869デフォルトの名無しさん
NGNGマニュアルを読め、printf/scanfは奥が深い
int a = 5;
printf("%*.*s\n", a, a, "abcdefg");
a = 20;
printf("%*.*s\n", a, a, "abcdefg");
0870デフォルトの名無しさん
NGNG質問したいんですが
文字列と文字を一緒に出力しようとすると
なぜか文字だけ出力されません
具体的には
#include <stdio.h>
main()
{
char ch[100];
char c;
printf("文字列:"); scanf("%s", ch);
printf("文字:"); scanf("%c", &c);
printf("\"%s\"\n", ch);
printf("\'%c\'\n", c);
return 0;
}
とやるとscanf("%c", &c);を読みこんでくれないようなのです
ちなみに文字列なしで文字単体のプログラムをするとちゃんと出力されました
どなたか知恵をお借りしください
0871デフォルトの名無しさん
NGNGヘンナニホンゴネ
087260cm浮き上がるストレート
NGNGお答えありがとうございました.
>>868
その方法は調べて勉強してみます.
>>869
あるだろうと思ってたんですが、あったんですね.文字列に割り込めるやつ.
1つ目の*は従来のスペース幅を替えるやつ。引数をマイナルにすれば左寄りになる.
2つ目の.*は始めて見たのですが、どうやら表示文字数を変えるやつみたいですね.
文字列が10文字でも.5なら先頭から5文字だけ表示する。
ただこれは文字列専用のようで、%ldとかだと効かないみたいです.
0874デフォルトの名無しさん
NGNG0875デフォルトの名無しさん
NGNG> 文字列と文字を一緒に出力しようとすると
> なぜか文字だけ出力されません
はて、ちゃんと「改行文字」が出力されているはずだけどな。
多分
> printf("文字:"); scanf("%c", &c);
printf("文字:"); scanf(" %c", &c);
こうすれば、(%cの前にスペースを入れる)君の思ったとおりの動作をするはずだ、
なんでそうなるかはマニュアルを見ろ。
0876デフォルトの名無しさん
NGNG%1sって\0入れない?
0877870
NGNGいくつかやり方があるようなのでその辺の仕組みは調べてみます
>>875氏
まさにその通りです
文字列:hogehoge
文字:"hogehoge"
'
'
こんな感じで改行だけされてました
0878デフォルトの名無しさん
NGNG#include<search.h>
#include<string.h>
#define MAXDATAS 20
#define MAXCHARS 20
int lencmp(char **ax,char **ay)
{
if(strlen(*ax)<strlen(*ay)) return(-1);
if(strlen(*ax)>strlen(*ay)) return(1);
return(0);
}
int main(void)
{
int i,j;
char *point_date[MAXDATAS];
char buff[MAXDATAS][MAXCHARS];
for(i=0;i<MAXDATAS;++i)
{
printf("Input string[%02d]:",i+1);
point_date[i]=&buff[i][0];
gets(point_date[i]);
if(0==*point_date[i]) break;
}
qsort(point_date,i,sizeof(char *),lencmp);
printf("\n<Sorting>\n");
for(j=0;j<i;++j)
printf("%2d:%s\n",j+1,point_date[j]);
}
でコンパイルしようとしてもエラーが出てできません。エラーの内容も読みましたが知識?不足でよく分かりません
だれか教えてください!おねがいします。
0879デフォルトの名無しさん
NGNGqsort()の行をこうしてみれ。
qsort(point_date,i,sizeof(char *),(int (*)(const void *, const void *))lencmp);
0880デフォルトの名無しさん
NGNGstdlib.hをインクルードしていないから
エラーじゃなくて警告じゃない?
0881デフォルトの名無しさん
NGNG0882デフォルトの名無しさん
NGNGqsort()ならsearch.hをインクルードしてるから大丈夫だよ。
0883880
NGNG消したかったらint lencmp(char **ax,char **ay)をint lencmp(const void *ax,const void *ay)とし、中で適切にキャストするとよい。
0885デフォルトの名無しさん
NGNGエラーメッセージがわからなかったら、それをここに貼るといいよ。
0886デフォルトの名無しさん
NGNG> C言語の一番大元の仕様書(ANSI?)ってどうやったら手に入れられます?
ISO/IEC 9899:1999はhttp://www.ansi.org/で$225で売ってる。
ISO/IEC 9899-1999はhttp://www.ansi.org/で$18で売ってる。
JIS X3010‐1993:はhttp://www.jsa.or.jp/で8000円で売っている。
JISのC99はまだ出てない。
0887デフォルトの名無しさん
NGNGで、今後の目標に、Cではどんなアプリが作れるのか見たいのですが
Cで作られたアプリってどんなのがありますか?
0888デフォルトの名無しさん
NGNGまだ早いかと思いましたが、新スレたてました。
950くらいまではこちらを使ってください。
0890デフォルトの名無しさん
NGNG面倒なだけでどんなアプリでも作れる。
0891デフォルトの名無しさん
NGNG数え切れないけど、例えばお馴染みのFFFTP
http://www2.biglobe.ne.jp/~sota/ffftp.html
0892デフォルトの名無しさん
NGNG普通のアプリなら、なんでも作れるよ。
ドライバとかは、もしかしたらアセンブラが必要かも知れないけど
0893デフォルトの名無しさん
NGNG> Cでwindows上で動くアプリって作れるんですよね?
C + Win32Apiを使えば大概のものは作れる。
0894878
NGNG0895デフォルトの名無しさん
NGNG0896デフォルトの名無しさん
NGNG0897デフォルトの名無しさん
NGNGもうネタはいいよ・・・
0898JPS ◆M0LaMzf5rY
NGNG論争するならこっちでやれ!おれがたててやったYO!
http://pc3.2ch.net/test/read.cgi/tech/1037105440/l50
0899デフォルトの名無しさん
NGNG0900デフォルトの名無しさん
NGNGmain()
{
int dec, bin=0, bit, coef=1;
char endchar;
do{
scanf("%d%c",&dec,&endchar);
printf("%3d\t",dec);
while(dec != 0){
bit = dec % 2;
dec /= 2;
bin += bit*coef;
coef *= 10;
}
printf("%10d\n", bin);
}while(endchar != '*');
}
10進数→2進数のプログラム。参考書どおりに打ったのにちゃんとでてきませぬ。
13, 10, 8, 7, 5, 3*と打つと、最初の13は正しく出るのですが、10以降はボロボロ…
「おまいのここが違ってる!!」というのがあったら教えてください。
おながいします。
0901デフォルトの名無しさん
NGNG0902デフォルトの名無しさん
NGNGcoefがループごとに初期化されてない。
0903デフォルトの名無しさん
NGNGと
char a[10] = {0};
はどちらも全要素0で初期化されますよね?
0904デフォルトの名無しさん
NGNGされる。つーか何度もその話題は出ている
0905デフォルトの名無しさん
NGNG何度でたか知らんが、オレは初めて見た。
お前のために地球が回ってるんじゃねーんだよ?
0906デフォルトの名無しさん
NGNGいや、十分FAQだと思うよ。
0907デフォルトの名無しさん
NGNGそれはただ単におまえが無知なだけだ
0908デフォルトの名無しさん
NGNGわけのわからん煽りだな。
905=903に違いない。
0909デフォルトの名無しさん
NGNG変数名の先頭に数字は使えないはずですよね?
0910デフォルトの名無しさん
NGNGa[1] == 1[a] = *(a + 1) == *(1 + a)
0911デフォルトの名無しさん
NGNG>>801
つい最近出たばっか。>>905は過去ログを読まないDQNの典型。
0912デフォルトの名無しさん
NGNG意味不明
0914デフォルトの名無しさん
NGNGa[1] == *(a + 1) == *(1 + a) == 1[a]
だろ?
0915デフォルトの名無しさん
NGNGお前が意味不明。
0917デフォルトの名無しさん
NGNG0918デフォルトの名無しさん
NGNG簡潔すぎて初心者にはわかりにくいスレになってしまったのかも
0919デフォルトの名無しさん
NGNG0920デフォルトの名無しさん
NGNG0921デフォルトの名無しさん
NGNGまあFAQ作っても読まない香具師はいるだろうが、、、
0922デフォルトの名無しさん
NGNG0923デフォルトの名無しさん
NGNGbinとcoefの初期値設定の場所を変えたら成功しますた。ありがとうございます。
0924デフォルトの名無しさん
NGNG0925デフォルトの名無しさん
NGNG0926デフォルトの名無しさん
NGNGコンパイルエラーになってくれたほうが良い。
0927デフォルトの名無しさん
NGNG0928デフォルトの名無しさん
NGNG0929デフォルトの名無しさん
NGNGif(flag==true)
って書くと期待通りに動かないじゃないか、この糞言語め。
0930デフォルトの名無しさん
NGNG何それ?文字列の中のxの位置の文字ってこと?
0931デフォルトの名無しさん
NGNGすぐ上の914で出たばかりですが。
0932デフォルトの名無しさん
NGNG0933デフォルトの名無しさん
NGNG> if(flag==true)
真偽値のある言語でも、こういう書き方してるのって素人くさいと思う。
0934デフォルトの名無しさん
NGNG0935デフォルトの名無しさん
NGNGその昔、構造体のメンバのアクセス演算子が
! 立ったころ、 foo!bar を bar!foo と
書くことができたんだそうな。
0936デフォルトの名無しさん
NGNG2進16進変換で使うだろ。
0937デフォルトの名無しさん
NGNG真偽値のない言語を使ってるヤツからはそう見える。
0938デフォルトの名無しさん
NGNG0939デフォルトの名無しさん
NGNG使いません。
0940デフォルトの名無しさん
NGNGおまいが C 言語しか触ったことないのバレバレなんだが
0941デフォルトの名無しさん
NGNG何で分かったの?不思議。
0942デフォルトの名無しさん
NGNGなぜ
if ((flag == true) == true)
と書かないんだ?
0943デフォルトの名無しさん
NGNGプ)
お前こそ C 言語しか触ったことないのバレバレ
0944デフォルトの名無しさん
NGNGif flag = true then ...
if flag then ...
if a = b then f := true else f := false;
f := a = b;
0945デフォルトの名無しさん
NGNGif(flag)だけだとflagが真偽値が明確ではない。
if(flag==true)だとflag真偽値であるのが明確。
if((flag==true)==true)は既にflagが真偽値であるのが明確なので無意味。
0946945
NGNG× if(flag)だけだとflagが真偽値が明確ではない。
○ if(flag)だけだとflagが真偽値であるか明確ではない。
0947デフォルトの名無しさん
NGNGいいから黙って if(flag) を使っとけ。これ最強。
0948デフォルトの名無しさん
NGNG0949デフォルトの名無しさん
NGNG0950デフォルトの名無しさん
NGNGで診断してもらった方がいいね。
0951デフォルトの名無しさん
NGNG0952デフォルトの名無しさん
NGNGif(flag2==true) {
}
ここまでやれば完璧。誰が読んでも明白。
0953デフォルトの名無しさん
NGNGバカか。
if(flg==true)
と書いたって実行しなきゃわからんだろ。
0954デフォルトの名無しさん
NGNG0956デフォルトの名無しさん
NGNGそれは結局。if(flag==true)と同じなんだけど...
0957デフォルトの名無しさん
NGNG見るだけで何がわかるんだよ。
flgは真偽しか返さないのにいったい他に何がわかるんだ。
0958デフォルトの名無しさん
NGNGflagの型って書いてあるだろ。まあコーディング規約でflagは真偽しか
返さないと決めてあるのなら別だが。
0959デフォルトの名無しさん
NGNGkanpeci
0960デフォルトの名無しさん
NGNGどうしても型が知りたいっていうなら別だが・・・
型を知ってどうするんだ?
そこで型がわかったところで意味ないと思うんだが。
0961デフォルトの名無しさん
NGNG0962デフォルトの名無しさん
NGNG可読性が上がるだろ。
0963デフォルトの名無しさん
NGNGif(flag==true) の方が可読性で勝ると思ってる奴は初心者。
0964デフォルトの名無しさん
NGNG0965デフォルトの名無しさん
NGNG#include <stdio.h>
#define N 4
int main(void)
{
int j;
char a[N] = "";
for (j=0;j<N;j++)
printf("%d ", (int)a[j]);
return 0;
}
$ ./a.out
0 37 100 32
なんかゴミが入るんだよなぁ。
c99 6.7.8 12
If there are fewer initializers in a brace-enclosed list than there are
elements or members of an aggregate, or fewer characters in string literal
used to initialize an array of known size than there are elements in the
array, the remainder of the aggregate shall be initialized implicitly the
same as objects that have static storage duration.
0966デフォルトの名無しさん
NGNGb. 明日雨が降ったら、が真なら、遊びに行くよ。
0967デフォルトの名無しさん
NGNG反論できないから初心者ということにして誤魔化すことしかできない程度
0968デフォルトの名無しさん
NGNGa. 旗だったら、遊びに行くよ。
b. 旗が立ったら、遊びに行くよ。
0969デフォルトの名無しさん
NGNGつまりそれがC99で書かれていることが読み取れるわけだ。
(´_ゝ`)ふーん
0970デフォルトの名無しさん
NGNGえらく自分の都合のいいように解釈してるな(w
0971デフォルトの名無しさん
NGNGそう解釈できるのだから間違ってないだろ。
0972デフォルトの名無しさん
NGNG--------------------
C言語のことは漏れに聞け!char *c[42];
漏まえら、C言語のことなら漏れに聞け。
問題をちゃんと切り分けて、Cの話かそうでないか洗ってから質問してくれ。
というより、聞く前に一応 Web で検索しろ。
コンパイラを探してるなら >>2 を見ろ。
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/
前スレ
c[41] = "http://pc3.2ch.net/test/read.cgi/tech/1036876790/";
0973デフォルトの名無しさん
NGNG自分で何を言っているか分かっていますか?
0974デフォルトの名無しさん
NGNG0975次スレの>>3
NGNGc[39] = "http://pc3.2ch.net/test/read.cgi/tech/1036409391/";
c[38] = "http://pc3.2ch.net/test/read.cgi/tech/1035729526/"; // 待機中
c[37] = "http://pc3.2ch.net/test/read.cgi/tech/1035623265/"; // 待機中
c[36] = "http://pc3.2ch.net/test/read.cgi/tech/1035211039/"; // 待機中
c[35] = "http://pc3.2ch.net/test/read.cgi/tech/1034337064/"; // 待機中
c[34] = "http://pc3.2ch.net/test/read.cgi/tech/1033240509/"; // 待機中
c[33] = "http://pc3.2ch.net/test/read.cgi/tech/1032606064/"; // 待機中
c[32] = "http://pc3.2ch.net/test/read.cgi/tech/1031905402/";
c[31] = "http://pc3.2ch.net/test/read.cgi/tech/1031340950/";
c[30] = "http://pc3.2ch.net/test/read.cgi/tech/1030786546/";
c[29] = "http://pc3.2ch.net/test/read.cgi/tech/1029605182/";
c[28] = "http://pc3.2ch.net/test/read.cgi/tech/1028495798/";
c[27] = "http://pc3.2ch.net/test/read.cgi/tech/1027160374/";
c[26] = "http://pc.2ch.net/tech/kako/1026/10260/1026048820.html";
c[25] = "http://pc.2ch.net/tech/kako/1024/10249/1024918442.html";
c[24] = "http://pc.2ch.net/tech/kako/1024/10240/1024033400.html";
c[23] = "http://pc.2ch.net/tech/kako/1022/10224/1022402165.html";
c[22] = "http://pc.2ch.net/tech/kako/1022/10224/1022402165.html";
c[21] = "http://pc.2ch.net/tech/kako/1022/10220/1022045622.html";
0976次スレの>>4
NGNGc[19] = "http://pc.2ch.net/tech/kako/1020/10207/1020756993.html";
c[18] = "http://pc.2ch.net/tech/kako/1020/10202/1020260813.html";
c[17] = "http://pc.2ch.net/tech/kako/1019/10193/1019372139.html";
c[16] = "http://pc.2ch.net/tech/kako/1018/10184/1018453690.html";
c[15] = "http://pc.2ch.net/tech/kako/1016/10165/1016519243.html";
c[14] = "http://pc.2ch.net/tech/kako/1015/10152/1015286974.html";
c[13] = "http://pc.2ch.net/tech/kako/1013/10139/1013990673.html";
c[12] = "http://pc.2ch.net/tech/kako/1012/10123/1012348974.html";
c[11] = "http://pc.2ch.net/tech/kako/1009/10094/1009499565.html";
c[10] = "http://pc.2ch.net/tech/kako/1008/10083/1008300863.html";
c[9] = "http://pc.2ch.net/tech/kako/1007/10072/1007272267.html";
c[8] = "http://pc.2ch.net/tech/kako/1005/10058/1005811510.html";
c[7] = "http://pc.2ch.net/tech/kako/1005/10058/1005811510.html";
c[6] = "http://piza2.2ch.net/tech/kako/999/999617524.html";
c[5] = "http://piza2.2ch.net/tech/kako/994/994908590.html";
c[4] = "http://piza.2ch.net/tech/kako/992/992357382.html";
c[3] = "http://piza.2ch.net/tech/kako/989/989929288.html";
c[2] = "http://piza.2ch.net/tech/kako/979/979529893.html";
c[1] = "http://piza.2ch.net/tech/kako/967/967985026.html";
0978デフォルトの名無しさん
NGNGif ( flag == true )
とするってならこんどは (flag == true) の型を知るために
if ( (flag == true) == true )
こうしなければならない。さらに ((flag == true) == true) の型を知るために(略
0979デフォルトの名無しさん
NGNG0980デフォルトの名無しさん
NGNGじゃあ型がわかったことにならないんじゃ。
0981デフォルトの名無しさん
NGNGint flg;
とかやってるのに
if(flg == true)
を見ただけで「flgには0か1しか入っていないはず!」と勘違いする可能性が…
でも実はflg=5;とかできちゃうわけで。
0982デフォルトの名無しさん
NGNGif(!!flag == true)
これなら一石二鳥だ。
>>972
面白いね。
> C言語のことは漏れに聞け!char *c[42];
この辺まで考えてるとは。
0983デフォルトの名無しさん
NGNGちょっとわかりにくいタイトルかなとは思ったんだけど、配列のインデックスが0から始まるC
だとちょうどタイトルの番号と過去スレの番号が収まっていいかなと
0984デフォルトの名無しさん
NGNGintとboolを比較したら普通はエラーだろ?
0985デフォルトの名無しさん
NGNGif(flag)だけだとflagが真偽値であるか明確ではない。
if(flag==true)だとflag真偽値であるのが明確。
if((flag==true)==true)は既にflagが真偽値であるのが明確なので無意味。
0986デフォルトの名無しさん
NGNGたとえば具体的に
int error_occurred;
のとき
if (error_occurred == true)
なんて書いてたらただのDQNだろ。
0987デフォルトの名無しさん
NGNGなぜ
if (((flag == true) == true) == true)
と書かないのかと小一時間…
0988デフォルトの名無しさん
NGNGi2=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]);
}
0989デフォルトの名無しさん
NGNG0990デフォルトの名無しさん
NGNGだから足りない情報(boolであるか)は一つ目のtrueで補えているから二つ目以降は必要ないだろ。
0991デフォルトの名無しさん
NGNGif ( flag == true )
だと flag が真偽値であることは明確だが
(flag == true) が真偽値であることは明確ではない。
0992デフォルトの名無しさん
NGNG0993デフォルトの名無しさん
NGNG(flag==true)は真偽値を返すことになっているはずだが。
0994988
NGNG0995デフォルトの名無しさん
NGNG\∧_ヘ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
,,、,、,,, / \〇ノゝ∩ < 1000取り合戦、いくぞゴルァ!! ,,、,、,,,
/三√ ゚Д゚) / \____________ ,,、,、,,,
/三/| ゚U゚|\ ,,、,、,,, ,,、,、,,,
,,、,、,,, U (:::::::::::) ,,、,、,,, \オーーーーーーーッ!!/
//三/|三|\ ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
∪ ∪ ( ) ( ) ( ) )
,,、,、,,, ,,、,、,,, ∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
,,、,、,,, ( ) ( ) ( ) ( )
0996デフォルトの名無しさん
NGNG今それどころじゃないんだ。
0997デフォルトの名無しさん
NGNGもし DQN なら あぼーん
if ( DQN == true ) abone();
もし DQN が 真 なら あぼーん
0999988
NGNG10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。