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

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

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2012/02/04(土) 03:01:40.24
C言語の*入門者*向け解説スレッドです。

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

長くなりそうなコードはcodepadに貼り付けてもいいでしょう
http://codepad.org/
0002デフォルトの名無しさん2012/02/04(土) 11:35:00.20
http://codepad.org/IzHZjtvA


フィボナッチ数列の中で、偶数の値のものを足していくプログラムです。
その偶数の値が400万を超える項になるまで繰り返すのですが、うまくいきません。
どうすればいいでしょうか。

0003デフォルトの名無しさん2012/02/04(土) 11:44:19.85
>>2
ちなみに出るエラーは
'fibo' : 1 番目の引数を 'void' から 'int *' に変換できません。
と出ます。

偶数の値になるときは、
2項目、5項目、8項目、11項目、14項目・・・です。
3項先の値は約4倍の値になるので、それをaddに格納して400万を越えるかどうかの判定をしてます。
0004デフォルトの名無しさん2012/02/04(土) 11:54:37.66
>>2
http://codepad.org/J3xlSVyO
0005デフォルトの名無しさん2012/02/04(土) 13:12:23.35
>>4
素晴らしい回答をありがとうございます!


あの、値渡しが上手くいかないんですけど、
どうすればいいでしょうか?
0006デフォルトの名無しさん2012/02/04(土) 14:13:43.38
>>5
値渡し云々よりもまず、
add = fibo(fibo(&a,&b),fibo(&a,&b));
この呼び出しの仕方だけど、関数呼び出しの引数を渡す所で、
同じ変数を更新する関数を呼ぶのは、呼び出しの順番が保証されないのでまずい
int z;
void f(int a,b,c) { }
void a(void) { z = 1; } void b(void) { z = 2; } void c(void) { z = 3; }
f(a(),b(),c());
この例ではa b cでそれぞれzを更新しようとしても、
どの順番に呼ばれるのかは言語の仕様に規定がないので、
zの結果は処理系依存になる。

で、値渡しができない件については、関数の結果の値は右辺値だから、
その値に対してのアドレスは得られない。
一度、結果を別の変数に格納して、その変数のアドレスを渡せば良い。
int tmp = fibo()
fibo(&tmp)
0007デフォルトの名無しさん2012/02/04(土) 14:16:33.88
つーかfiboの型はvoidじゃないか。
voidじゃなくてint *にして適当にreturnで返せば意図通りになるよ。
0008デフォルトの名無しさん2012/02/04(土) 15:17:27.77
なるよね
0009デフォルトの名無しさん2012/02/04(土) 15:29:24.92
呼び出しの順番がどうとか関係ないよね
0010デフォルトの名無しさん2012/02/04(土) 15:53:12.09
ないよね。
0011デフォルトの名無しさん2012/02/04(土) 15:58:21.51
Cには値渡ししかないけどな。
0012デフォルトの名無しさん2012/02/04(土) 18:36:36.21
関数引数の評価順序は規定されてないんだから
あんな書き方するもんじゃないよって事だよ

0013デフォルトの名無しさん2012/02/04(土) 19:02:44.18
そもそも元の意味がわからんが、どういう順でよばれても同じ結果になる感じじゃないのか。
だからそもそも論点が違う。
0014デフォルトの名無しさん2012/02/04(土) 21:06:04.79
>>4
上手いな。
0015デフォルトの名無しさん2012/02/04(土) 21:14:03.83
まぁ最近はあんまりしてないけど、はじめてCしたのはもう30年以上前だからな。
0016デフォルトの名無しさん2012/02/04(土) 22:22:05.74
><
0017デフォルトの名無しさん2012/02/04(土) 23:26:06.87
あれは30年前
止めるあなた駅に残し
0018デフォルトの名無しさん2012/02/04(土) 23:40:18.97
>>9-10, >>13
どんな順序でも結果が同じになればいいというわけじゃない。

それがいいなら、a = (i++) * (i++); もいいことになる。

C-FAQ: 3.2, 3.8
0019デフォルトの名無しさん2012/02/04(土) 23:56:16.60
assertの内部実装に関して質問なのですが、
プログラム中でassertに引っかかって停止した場合、
OSに対して、何かしらの値を戻したりしているのでしょうか?
0020デフォルトの名無しさん2012/02/05(日) 00:20:23.07
>>18
未定義と不定は違うのだよ。
0021デフォルトの名無しさん2012/02/05(日) 00:45:36.11
>>20
それがどうかしたのか?
0022デフォルトの名無しさん2012/02/05(日) 00:47:51.63
>>19
それは実装次第じゃないかな。
0023デフォルトの名無しさん2012/02/05(日) 01:21:18.15
mainのなかでファイルからデータを読み込んで、構造体の配列で宣言したものを
ユーザー定義関数?でつかうにはどうしたらいいんですか?
0024デフォルトの名無しさん2012/02/05(日) 01:35:49.01
>>18
論点が違うよ。
>>2のケースは
http://codepad.org/JEMlZ7Sb
こういうことだから評価順は関係ないよね
ってな話。
分かる?
0025デフォルトの名無しさん2012/02/05(日) 01:36:39.45
>>23
mainのなかでファイルからデータを読み込んで、構造体の配列で宣言したものを
ユーザー定義関数?でつかえばいい。
0026デフォルトの名無しさん2012/02/05(日) 01:38:01.47
「ファイルからデータを読み込んだデータ」をつかう?
「構造体の配列で宣言したもの」をつかう?
0027デフォルトの名無しさん2012/02/05(日) 01:45:05.45
まずデータをファイルに書き込んでおいたものを読み込んで
それを構造体の配列で保持します。
mainの中でよみこんだのをユーザー定義関数で使えますか?
0028デフォルトの名無しさん2012/02/05(日) 01:46:09.07
何を言ってるのかよくわからないが、使えない理由はない。
0029デフォルトの名無しさん2012/02/05(日) 01:47:21.68
説明下手ですいません;
0030デフォルトの名無しさん2012/02/05(日) 02:19:34.00
スレチかもしれないが・・・
(1)1から1000までの間に、3と7の倍数の値がいくつ含まれているのか求めるプログラムを書け。

(2)キーボードから西暦年を入力し、その年がサッカーワールドカップ開催年かどうかを判定するプログラムを作成せよ。

この2つのプログラムを作成してくれませんか?自分でやってみたのですが、イマイチうまくいかなくて・・・
0031デフォルトの名無しさん2012/02/05(日) 02:33:10.21
スレ違い。
0032デフォルトの名無しさん2012/02/05(日) 02:33:36.06
スレチか〜残念
0033デフォルトの名無しさん2012/02/05(日) 03:01:52.49
>>14
まぁ、メジャーなサンプルだから、ここから学ぶことは多いよね。

>>18
順番関係ないよ。
その2行目は曲解もはなはだしいけど
0034デフォルトの名無しさん2012/02/05(日) 03:20:08.84
>>27
ユーザ定義関数に引数で渡せば使える
0035デフォルトの名無しさん2012/02/05(日) 10:07:07.51
>>24
結果が正しいからOKって?
いや、まあ君がそれでいいなら別に言うことはないけど。
0036デフォルトの名無しさん2012/02/05(日) 15:01:40.90
>>35
どこが問題なの?
0037デフォルトの名無しさん2012/02/05(日) 15:37:15.24
head.h、one.cpp、two.cppのファイルの構成で
head.hの中にaaa()、bbb()という関数があったとして
one.cpp、two.cppともに、head.hをインクルードしたとき
関数aaaとbbbはちゃんと1つずつメモリに読み込まれるんでしょうか?
exe実行すると、2個ずつメモリに展開されるようになるんですか?
0038デフォルトの名無しさん2012/02/05(日) 15:45:04.03
そもそもhead.hに関数の定義をしてはいけない。
してしまったとしたら、その関数が外部リンケージならエラーになるはず。
ファイルリンケージなら、実体は複数できる可能性が高い。
0039デフォルトの名無しさん2012/02/05(日) 15:52:25.44
ありがとうございました
0040デフォルトの名無しさん2012/02/05(日) 16:17:02.29
>>37
>>38の補足になるけど

>head.hの中にaaa()、bbb()という関数があったとして
これが宣言なのか定義なのかが問題。
通常は宣言だと思うので、それならば問題ない。
定義だとすると>>38の問題がでる。

これがinline関数だとしたら処理がインラインに展開されることになり、
メモリは余計に食うことになる。
0041デフォルトの名無しさん2012/02/05(日) 16:25:37.68
よっぽど短い関数の場合だとインライン展開した方が小さい場合もあるけどな。
0042デフォルトの名無しさん2012/02/05(日) 17:18:20.48
FILE *fp;
fp = fopen("data.txt","r");
for(i=0; i<10; i++)
{
if((fscanf(fp,"%[^,],%d",data[i].name, data[i].score)) != EOF)
{
number++;
}
else
{
break;
}

ファイルの読み込みってこれであってますか?
うまくうごかないんですけど
0043デフォルトの名無しさん2012/02/05(日) 18:25:51.58
>>42
どう、うまく動かないかわからんのだが。
ついでにdata構造体の宣言が見えないとわからん。

気になるのはdata[i].scoreはポインタを渡しているかってことかな。
0044デフォルトの名無しさん2012/02/05(日) 19:02:19.27
struct file_data{
char name[100];
int score;
};

struct file_data data[10];

構造体の宣言はこんな感じです。
if(fp==NULL){
printf("指定されたファイルが存在しません\n");
}
if文の中が表示されてしまうんですけどどうしたらいいですか?
0045デフォルトの名無しさん2012/02/05(日) 19:06:50.43
>>35
なぜ?
> どんな順序でも結果が同じになればいいというわけじゃない。
>
> それがいいなら、a = (i++) * (i++); もいいことになる。
>
> C-FAQ: 3.2, 3.8
とか言ってる人だから日本語通じないのかな


>>44
fscanf(fp,"%[^,],%d\n",data[i].name, &data[i].score)
0046デフォルトの名無しさん2012/02/05(日) 19:49:33.99
>>45
どういう理由で日本語通じないと言ってるのか、さっぱりわからんが、
>>24 で満足してるなら別にいいんじゃね。

別に君がどうなろうと、俺にとってはどうでもいいし。
0047デフォルトの名無しさん2012/02/05(日) 20:30:54.82
なんだ、まだ不定と未定義の区別もついてないのか。
それとも理解したくないのか。
0048デフォルトの名無しさん2012/02/05(日) 20:42:51.06
function(exp_a(), exp_b(), exp_c());
この評価順も不定だからダメと言いたいのだろうか。バカ丸出しだな。>>35
0049デフォルトの名無しさん2012/02/05(日) 20:51:52.95
>>46
> C-FAQ: 3.2
これは引数の評価順のFAQじゃないのね
C-FAQ: 3.2 で理解できないのなら
http://www.st.rim.or.jp/~phinloda/cqa/cqa7.html
Q 【i++ * i++】
に目を通した上で読み直してごらん

> どんな順序でも結果が同じ
とする例として
>a = (i++) * (i++);
を出すのはおかしい事に気づくはず
0050デフォルトの名無しさん2012/02/05(日) 21:53:41.28
>>49
Q 【未定義の例】未定義である場合としては、どのようなものがあるか。
A 二つの副作用完了点の間に、オブジェクトの値を2回以上変更している場合、
  又は変更した後で新しい値を得ること以外の目的でそのオブジェクトをアク セスしている場合。

fibo(fibo(&a,&b),fibo(&a,&b)); の式は、(間違ってるけど) 式中で a, b を2回以上
変更してるからダメということ。

>>47
この手の議論で「不定」とか出してくる奴には用はないよ。

>>48
exp_a( ), exp_b( ), exp_c( ) で、同一オブジェクトを変更しているかどうかが問題。
なので、exp_a( ) の内容も示せずにレスする奴は、何も理解してない馬鹿。
0051デフォルトの名無しさん2012/02/05(日) 21:56:54.79
この場合重要なのは、一つの式の中で、副作用が発生する操作を二回行う
ということです。その結果は未定義なので、この printf がどのような値を表示
してもC言語の仕様としては問題ありません。極端な場合、ここでプログラムが
異常終了してしまっても問題ありません。
0052デフォルトの名無しさん2012/02/05(日) 22:17:54.47
>>51
>この場合重要なのは、一つの式の中で、副作用が発生する操作を二回行う
>ということです。その結果は未定義なので、

ダウト。

printf("%d %d\n", a++, b++); は、副作用が発生する操作を2回しているが問題ない。

問題にすべきなのは、「同一オブジェクトに対して」副作用が複数回発生すること。
0053デフォルトの名無しさん2012/02/05(日) 22:22:15.96
もうただの揚げ足の取り合いだなw
0054デフォルトの名無しさん2012/02/05(日) 22:29:05.79
>>44
>if文の中が表示されてしまうんですけどどうしたらいいですか?
ってことはfpがNULLなんだろ。
ファイルが開けないのだから、ファイル名があっているか、パスがあっているか、
そのあたりでしょ。

それと、その構造体の宣言なら、%dに対応する変数はポインタを渡す必要があるから
>>45のとおりfscanf(fp,"%[^,],%d\n",data[i].name, &data[i].score)
data[i].nameもポインタになっているのは、わかるよね?
0055デフォルトの名無しさん2012/02/05(日) 22:40:58.60
>>50
話の通じない人だな
24の簡単なサンプルが理解できないようだから
更に簡単に書くよ

int f() { static i=2; return i++; }
int sum(int a, intb) { return a+b; }
int sub(int a, intb) { return a-b; }

int main() {
printf("%d\n", sub(f(), f()));
printf("%d\n", sum(f(), f()));
return 0;
}

これなら分かるかい?
2-3 が 3-2では困るが
2+3 は 3+2は同じだろ?
小学生でも分かる交換法則な
>>2でのケースはそれなんだよ
0056デフォルトの名無しさん2012/02/05(日) 22:50:44.07
>>51
> exp_a( ), exp_b( ), exp_c( ) で、同一オブジェクトを変更しているかどうかが問題。
かかったな。どの順序で呼んでも全然問題ありませんが、何か言い残す事は? w

int total
exp_a( )
{
total +=1;
}
exp_b()
{
total +=2;
}
exp_c( )
{
total +=3;
}
0057デフォルトの名無しさん2012/02/05(日) 23:04:21.70
どの順序で呼ぶとか以前に
同じオブジェクトを1つの式中で変更するようなコードの動作は未定義なんでしょ?
0058デフォルトの名無しさん2012/02/05(日) 23:06:47.58
足りなかった&ちょっと言い方が違うか
同じオブジェクトを1つの式中で複数回変更するようなコードを実行すると
鼻から悪魔が飛び出すんでしょ?
0059デフォルトの名無しさん2012/02/05(日) 23:19:48.44
>>57
関数呼び出しの引数並びは「一つの式」じゃありませんが。

なるほど、こんなことも知らずに「副作用完了点ガー」って、
覚えたての念仏唱えてたのか。w
0060デフォルトの名無しさん2012/02/05(日) 23:28:26.83
だから揚げ足取りw
0061デフォルトの名無しさん2012/02/05(日) 23:31:28.55
わからなくて調べててわからなかったんだが
ttp://f4.aaacafe.ne.jp/~pointc/log567.html
これの最後のレスがあってるということ?
0062デフォルトの名無しさん2012/02/05(日) 23:33:39.64
>>59
関数呼び出し(を含む式)は1つの式じゃないの?
0063デフォルトの名無しさん2012/02/05(日) 23:35:16.49
途中で(順序は不明だが)関数を呼び出してる(副作用完了点になる)
どういう順序で関数が呼ばれても結果が変わらない
からOKということか
0064デフォルトの名無しさん2012/02/06(月) 00:27:12.54
float a = ...
float b = ...
float c = (float)(((double)a) * ((double)b));

このコードは誤差を減らすためにやっているんですか?
0065デフォルトの名無しさん2012/02/06(月) 00:41:01.38
>>64
試してみりゃいいじゃん
double a,b,c;
double a,b; float c;
float a,b; double c;
とかのパタンで
0066デフォルトの名無しさん2012/02/06(月) 01:15:18.08
素人が書きましたという意味。
それじゃ、誤差は減らないから。
0067デフォルトの名無しさん2012/02/06(月) 07:31:33.37
で、結局>>50がアフォってことでFA?
関数呼び出しが副作用完了点てことも知らなかったのかな。
0068デフォルトの名無しさん2012/02/06(月) 08:00:23.40
何にしろf(g(), h())みたいな書き方はマイナス査定対象
0069デフォルトの名無しさん2012/02/06(月) 08:06:55.29
アフォ登場。
0070デフォルトの名無しさん2012/02/06(月) 08:25:26.34
文字列中の部分文字列を検索する関数を作成したいのですが
strstr関数だと先頭に来る文字列しか検索できないので、
その次以降にも文字列が含まれているかどうか探していくにはどうやってプログラムすればいいんでしょうか
例えば str1="abcabdefgabchaiab" という文字列がある時、文字列「abc」が含まれる個数を数えるといった具合です
0071デフォルトの名無しさん2012/02/06(月) 08:36:17.15
>>70
http://codepad.org/MpQ8lT7F
0072デフォルトの名無しさん2012/02/06(月) 08:47:09.95
>>71
ありがとうございます!
0073デフォルトの名無しさん2012/02/06(月) 09:08:13.60
しかし、>>50の言い草はまたすごいなぁ
結局用が無かったのは>>50なわけでwww
0074デフォルトの名無しさん2012/02/06(月) 10:02:32.17
>>64
floatをdoubleにしても、元がfloatなので有効桁はfloatの時と
同じなので意味がない。
double化することにより、乗算の結果表現可能よりはみ出すこ
とを抑制できるが、float化するのでこれまた意味がない。

つまり>>50並みのアフォが書いた意味なしコード。
0075デフォルトの名無しさん2012/02/06(月) 13:34:26.44
>>67
よくわからないなら書かなければいいのにね
0076デフォルトの名無しさん2012/02/06(月) 16:55:11.93
ミーティングの時に「副作用完了点」とぼそっと呟いてみよう。
ピクッと反応した奴が>>50だ。見つけたら笑ってやれ。
0077デフォルトの名無しさん2012/02/06(月) 17:46:54.75
変数の使い方についてなんですが
プログラムを作っていて、変数が新しく必要になった時に
今までの処理で使用したけどもう役目を終えて使っていない変数があればそれを再利用すべきなのか
それとも新しく宣言した方が良いのか、どっちなんでしょうか?うまく表現できなくてすみません
0078デフォルトの名無しさん2012/02/06(月) 17:48:08.11
>>77
意味のある名前をつければおk
0079デフォルトの名無しさん2012/02/06(月) 17:56:02.05
一時変数のtmpを使いまわすかどうかとか、
2個目のループでi j を使いまわすかどうかってレベルの気がする。
0080デフォルトの名無しさん2012/02/06(月) 18:29:11.17
再利用か、別変数か、>>50の意見も聞いてみたい。
>>50の逆をいけばいい。w
0081772012/02/06(月) 18:39:41.19
>>79
たぶんそのレベルでした
0082デフォルトの名無しさん2012/02/06(月) 19:17:46.90
オブジェクトの解体と再構築のコストが大きくて
可読性を犠牲にして再利用したくなるぐらいなら最利用する
そうでなければ普通に新しく作る
0083はちみつ餃子 ◆8X2XSCHEME 2012/02/06(月) 19:23:57.62
>>77
まともな最適化機能をもったコンパイラなら再利用は避けた方が効率的なプログラムになる可能性が高い。
最適化の前段階でのフロー解析において、どの変数がどこに利用されるか等のプログラムの流れを検出しようとするが、
関係の無いところでの使い回しがあると解析しにくくなる。
これは人間にとっても同じで、関係の無い使い回しがあると流れがわかりにくくなり易い。

コンパイラが C99 に対応しているならループ変数程度のものは
for (int i=0; i<n; i++) hoge();
というようにその場限りの使い捨てがやりやすいので積極的に使うといいと思う。

昔の C は関数の先頭でしか変数の宣言をできなかったが、今ではどこでも宣言できるので、
使うところの近くで宣言し、なるべく狭い範囲でだけ使うのが近代的なスタイルと考えられている。

とは言うものの、これらはあくまで原則。 やりすぎるとそれはそれで不都合があることもある。
読み易さや効率はケースバイケースなので盲目的に従うのではなく、
どちらが良いか個別の「意味」を自分なりに考えよう。

プロジェクトによって書き方にガイドラインを設けているものもあるので、
既存のスタイルを参考にするのもいいかもしれない。
0084772012/02/06(月) 19:29:34.66
参考になりました。みなさんありがとうございます!
0085デフォルトの名無しさん2012/02/06(月) 19:33:14.81
C99以外の環境ってブロックの先頭以外で変数宣言できたっけ?
0086デフォルトの名無しさん2012/02/06(月) 19:35:19.44
void func(void) {
int x;
hoge(x);
{
int y;
fuga(x, y);
}
}

的な感じで書けるから実質宣言場所に制限はないと見てもいいよ
0087デフォルトの名無しさん2012/02/06(月) 19:36:31.93
できないよ
0088872012/02/06(月) 19:37:04.79
>>85あてね。
0089デフォルトの名無しさん2012/02/06(月) 19:38:41.23
>>80
しばらく>>50を引き合いに出しそうな感じがするからコテつけてもらえると助かる。
0090デフォルトの名無しさん2012/02/06(月) 19:40:58.79
> プロジェクトによって書き方にガイドラインを設けているものもあるので、
> 既存のスタイルを参考にするのもいいかもしれない。

>>50のように聞きかじりの知識を振りかざして混乱させるはた迷惑なバカが
ガイドラインを作っていることも多いので、プロジェクトのガイドラインに
は疑いの目を向けることも重要。
0091デフォルトの名無しさん2012/02/06(月) 19:54:15.48
また変なのがでてきたなぁ…
コテ禁止にはしなかったんだっけ?
0092デフォルトの名無しさん2012/02/06(月) 21:02:11.80
コテつけてもらったほうがありがたい
0093デフォルトの名無しさん2012/02/06(月) 21:07:17.15
逆コンパイルでソースが復元できないC系のwindowsフォームアプリの開発言語でVSに入っているのはなんというものですか?
0094デフォルトの名無しさん2012/02/06(月) 21:07:44.89
>>92
いや、コテつけるようなやつは出入り禁止で。
>>93
スレ違い。
0095デフォルトの名無しさん2012/02/06(月) 21:08:04.00
>>85
C11ならできるだろ
0096デフォルトの名無しさん2012/02/06(月) 21:16:17.39
いや。>>50はぜひコテをつけて、このスレのおもちゃになってもらいたい。
0097デフォルトの名無しさん2012/02/06(月) 21:25:08.17
いやいや。すでに>>50って名前で定着してるだろw
0098デフォルトの名無しさん2012/02/06(月) 22:11:33.58
float a,b,c;
a = 425;
b = 293749;
c = (float)(((double)a) * ((double)b));
printf("%f %f\n",c,a*b);
0099デフォルトの名無しさん2012/02/06(月) 22:27:12.44
>>98
printf()にdoubleで渡してるからだろ。
何がいいたいんだ?
また>>50か?
0100デフォルトの名無しさん2012/02/06(月) 22:28:09.03
ワクワク、>>50の新作ギャグかな。
0101デフォルトの名無しさん2012/02/06(月) 22:32:12.29
初心者向けにC言語の暗黙のルールやバッドノウハウがまとまってるサイトとかってないかな
getsは使うなとかscanfは使うなとかそういうの
0102デフォルトの名無しさん2012/02/06(月) 22:42:48.60
C FAQの初心者版って事?
確かにC FAQ理解できなくて>>50になってしまったら悲惨だからなあ。
2chならいいけどリアルでやったら生きていけないよなあ。w
0103デフォルトの名無しさん2012/02/06(月) 22:43:53.39
お前ら容赦ないなwww
0104デフォルトの名無しさん2012/02/06(月) 22:46:15.96
>>101
バッドノウハウを学ぶタイミングは難しいとおもう。
非推奨の関数に関してはコンパイラの警告で。
0105デフォルトの名無しさん2012/02/06(月) 22:50:00.27
今Macのxcodeでc言語してるんですけど質問はここでいいですかね?
0106デフォルトの名無しさん2012/02/06(月) 22:53:52.00
mac板にxcodeスレがあるみたいだけど。そこじゃダメなの?
0107デフォルトの名無しさん2012/02/06(月) 23:24:50.60
新Mac板は基本objective-cや変化の多い環境環境やアプリや機器の登録とかの話題多いからcだけとかそうゆう感じじゃないんですよね。。MacでCすると窓にはないイレギュラーな事態とか起こったりするんだろうか、?

あ、すみません質問は事故解決しました
0108デフォルトの名無しさん2012/02/06(月) 23:43:06.17
ターミナルでgcc打ってるレガシーな感じでCの勉強してるのかな?
0109デフォルトの名無しさん2012/02/06(月) 23:55:33.61
xcodeのiPhoneアプリやMac用ソフトとかのテンプレの中にcのテンプレがありますねん
メモリ2Gくらい使うソフトでやってるからレガシーではないですな
0110デフォルトの名無しさん2012/02/06(月) 23:58:27.67
>>54-55
馬鹿すぎて話しにならない。

>>59
副作用完了点舐めすぎ。
関数呼び出しが副作用完了点と言うのは正しいが、今回の問題は引数の評価だから、全然違う話。

例えば
int foo(int x, int y){ return x + y; }
int main(){
int a = 1;
int b = foo(a++, a++);
printf("a = %d, b = %d\n", a, b);
return 0;
}
ってやってみればわかる。
引数の評価毎に副作用完了点があるなら、評価の順序にかかわらず a = 3, b = 3 になるはず。(GCC/2.95)
ところが、コンパイラによっては a = 3, b = 2 になる奴がある。(Visual Studio 2010)
もちろん両方ともに処理系としては正しい動作。
そもそも式がダメなのに、それに含まれる関数の引数評価に副作用完了点があると思えるなんて馬鹿すぎる。
0111デフォルトの名無しさん2012/02/07(火) 00:05:40.28
まだほざいてるのかよ。
誰も引数の評価ごとに完了点があるなんて言ってねーよ。
0112デフォルトの名無しさん2012/02/07(火) 00:06:24.95
a++の代わりにadd1(&a)とかにしてみろよ。
0113デフォルトの名無しさん2012/02/07(火) 00:14:26.36
やたら3項演算子使いたがるよね、自称玄人プログラマはw
0114デフォルトの名無しさん2012/02/07(火) 00:15:30.95
まぁ普通は低レベルに合わせないといけないから禁止されてるからそのせいだろw
0115デフォルトの名無しさん2012/02/07(火) 00:17:41.25
3項演算も禁止しなきゃならないぐらいヘボグラマしか居ない環境でまともなアプリケーションなんて作れるの?
0116デフォルトの名無しさん2012/02/07(火) 00:18:30.88
まぁお前も含めて大抵のとこはそんなもんだよ。
0117デフォルトの名無しさん2012/02/07(火) 00:18:37.62
>>4のソースとかニヤニヤしちゃう
0118デフォルトの名無しさん2012/02/07(火) 00:28:39.58
int fibo(int a)
{
if(a == 0) {
return 0;
} else if(a == 1) {
return 1;
} else {
return ( fibo(a - 1) + fibo(a - 2) );
}
}

↓

int fibo(int a)
{
return a == 0 ? 0 : a == 1 ? 1 : fibo(a - 1) + fibo(a - 2);
}

おれってかっけー、いやっほぅ!
0119デフォルトの名無しさん2012/02/07(火) 00:30:23.33
returnの後にelseとか、いつも間抜けに見えるよね。
0120デフォルトの名無しさん2012/02/07(火) 00:36:49.58
やってることは大したことないんだけど、記述次第で凄そうにみえる3項演算子
0121デフォルトの名無しさん2012/02/07(火) 00:39:38.48
まぁ理解してたらその逆だと思うけどなw
0122デフォルトの名無しさん2012/02/07(火) 00:41:31.76
おすすめの本教えて質問はできません
0123デフォルトの名無しさん2012/02/07(火) 00:41:37.31
そもそもif-elseの羅列と三項演算は使い道が違うから
比較すること自体がナンセンス
0124デフォルトの名無しさん2012/02/07(火) 00:46:33.27
ほうほう。
>>4の例が使うべき例だとそういうことだね
0125デフォルトの名無しさん2012/02/07(火) 00:47:20.15
そんな低レベルの話はしなくていいよ。
0126 ◆QZaw55cn4c 2012/02/07(火) 00:57:09.53
>>120
三項演算子をネストに使うのが便利です。
http://codepad.org/kd86JdbP
0127デフォルトの名無しさん2012/02/07(火) 01:01:37.22
この作例の利点は何だ?w
0128デフォルトの名無しさん2012/02/07(火) 01:02:51.96
三項演算ってのは条件式から値へのマッピングなんだよ
条件分岐とは意味合いが異なる
0129デフォルトの名無しさん2012/02/07(火) 01:04:30.24
うむ、その意味合いの違いが生かせる作例とは?
0130デフォルトの名無しさん2012/02/07(火) 01:08:07.69
Perl使う様になれば理解できると思うよ
0131デフォルトの名無しさん2012/02/07(火) 01:18:33.29
三項演算子は1段までなら簡潔にかけていいこともあるだろうが、
それ以降のネスト化はただの技巧披露にしか見えない

仮に、最適化オプションありでコンパイルしたコードをディスアッセンブリしてみて、
ソースを三項演算子で記述したほうが命令数少ないよって話なら別だが


慣れればフツーに読めるだろ、低能には無理だろうがな
とか言い出す玄人()が出てきそうなネタだね
0132デフォルトの名無しさん2012/02/07(火) 01:20:46.78
むしろ3項のほうがすっきりして読みやすいと思うんだけど
0133デフォルトの名無しさん2012/02/07(火) 01:22:18.38
カンマ式混ぜると痛い事に成るしな
0134デフォルトの名無しさん2012/02/07(火) 01:23:15.94
>>131
そう? (cond) に対応して便利と思わない?
0135デフォルトの名無しさん2012/02/07(火) 01:39:11.04
>>134
ん?どゆこと?
0136デフォルトの名無しさん2012/02/07(火) 01:45:03.81
で、どこに自称玄人プログラマがいるんだ?
色々禁止してやらないとダメな>>115のようなヘボグラマしかいないようだが。
0137デフォルトの名無しさん2012/02/07(火) 02:08:06.07
>>136
そういうあなたは?
0138デフォルトの名無しさん2012/02/07(火) 02:11:15.72
質問には質問で返す。
典型的なヘボ。
0139デフォルトの名無しさん2012/02/07(火) 02:13:56.08
これを俗にブーメランというのだよ >>136
0140デフォルトの名無しさん2012/02/07(火) 02:14:24.49
そして論点をずらす。
0141デフォルトの名無しさん2012/02/07(火) 03:15:20.54
#include <stdio.h>

void func(){
printf("i am func.¥n");
}

int fibo(int a){
return a == 0 ?
(a = 1, 0)
: a == 1 ?
(a = 2, func(), 1)
:
fibo(a - 1) + fibo(a - 2);
}

int main(){
printf("%d¥n", fibo(10));
return 0;
}
0142デフォルトの名無しさん2012/02/07(火) 03:31:12.45
fatal error RC1015: cannot open include file 'l.jpn\windows.rc'.

リソースファイルのコンパイルに失敗します

どうすれば解決しますか?
0143デフォルトの名無しさん2012/02/07(火) 03:41:43.09
>>126
それに慣れるとPHPでびっくりするからやめたほうがいいよ
0144デフォルトの名無しさん2012/02/07(火) 06:06:31.80
おまいら、教えてくれ
page faultの許容ってどんくらい?
process explorerで測定したら2000くらい。
バッチプログラムなんだけど、バッチで2000って多いですか?
0145デフォルトの名無しさん2012/02/07(火) 06:30:04.04
スレ違い。
0146デフォルトの名無しさん2012/02/07(火) 06:49:49.88
int x = 0;
printf("%d %d", ++x, ++x);
0147デフォルトの名無しさん2012/02/07(火) 08:28:54.91
>>141
もはやあほだろ。。
0148デフォルトの名無しさん2012/02/07(火) 09:51:11.12
>>2
#include <stdio.h>

void fibo(int *a, int *b)
{
*b += *a;
*a = *b - *a;
}

int main(void)
{
int sum, a, b;

for(sum = 0, a = 0, b = 1; a <= 4000000; fibo(&a, &b)) {
if(a % 2 == 0) {
sum += a;
printf("%d %d\n", a, sum);
} }

return 0;
}
0149デフォルトの名無しさん2012/02/07(火) 10:10:42.09
http://codepad.org/DumZG0hn
0150デフォルトの名無しさん2012/02/07(火) 13:14:55.81
static unsigned long long fib(unsigned n)
{
if (n == 0) return 0;
static unsigned long long a[94] = {0, 1, };
bool inRange = n < sizeof(a) / sizeof(* a);
if (inRange && a[n] != 0) return a[n];
unsigned long long val = fib(n - 1) + fib(n - 2);
if (inRange) a[n] = val;
return val;
}
0151デフォルトの名無しさん2012/02/07(火) 13:39:44.57
int add_fibo_evnn(int n){
int a=0,b=1,c=0,d;
while((d=b,b+=a,a=d)<=n)c+=d*(~d&1);
return c; }
0152デフォルトの名無しさん2012/02/07(火) 15:46:57.40
C言語のプログラムレポート15個中3個提出しなかっただけで3段階評価で
Cだった...8割出してC(可)ってありえないだろ。ふつうはAだよな。
みなさんどう思う?
0153デフォルトの名無しさん2012/02/07(火) 15:53:13.11
3段階評価ならCって不可じゃねーの?普通

3段階なら、全提出でB、内容がマトモでAだな
提出してないのはCでも文句言えないだろ
0154デフォルトの名無しさん2012/02/07(火) 15:53:54.59
プログラムの出来がパーフェクトで8割提出なら80点
プログラムの出来が80点で8割提出なら80*0.8=64点
プログラムの出来が90点で8割提出なら90*0.8=72点

00-60 不合格
60-70 C
70-80 B
80-100 A

お前のプログラムの出来が80から90に満たない程度の出来だったと判断されたんだろ
0155デフォルトの名無しさん2012/02/07(火) 15:55:05.69
パンデモニウムさんは可愛いけど声がイラつく
0156デフォルトの名無しさん2012/02/07(火) 16:03:32.42
>>154
専門科目が6割以上合格ってどんだけ昔の考え?
0157デフォルトの名無しさん2012/02/07(火) 16:08:14.75
A 優
B 良
C 可

D 不可

だろw

Aくれない教授はゴミだよ。生ゴミ以下。
0158デフォルトの名無しさん2012/02/07(火) 16:18:57.38
それ4段階じゃね?
レポートのみなら未提出がある時点でAはあり得ないだろ
0159デフォルトの名無しさん2012/02/07(火) 16:21:29.31
>>158
単位がくれるっていう前提で3段階っていっちゃったね。
ふつうはどの大学も合格がABCの3つだからね。

0160デフォルトの名無しさん2012/02/07(火) 16:29:03.64
未提出がある時点でAがありえない、とまではいわないが、
未提出があるにもかかわらずAを与えうる回答をそれまでにしたかどうかが気になるな
0161デフォルトの名無しさん2012/02/07(火) 16:30:27.44
つまり、求められた回答と同じレベル(テストで言うと100点)の回答しか出していないなら、未提出がある時点でAはない。
0162デフォルトの名無しさん2012/02/07(火) 16:46:10.86
実は本当は8つ提出してなくてぶっちゃけAとかどうでもよくて
単位が貰えるか不安だったけど安心した俺内野手
0163デフォルトの名無しさん2012/02/07(火) 17:01:57.43
>>159
「単位をくれる」なのか「単位が貰える」なのか
つか前提ってすごいな。最近の大学はそんなもんなのか?

>>162
教授次第だけど1/3以上未提出なら普通はDになるんじゃないかな
0164デフォルトの名無しさん2012/02/07(火) 17:02:21.17
むしろ全部提出してる奴は少ないからな。必修なら落とされないと思う。
0165デフォルトの名無しさん2012/02/07(火) 17:10:40.98
そういや私の通ってた大学も(頭が)足りないやつは追加提出させられてた気がするな
必修ならほぼ落とすことは無いか
0166デフォルトの名無しさん2012/02/07(火) 17:25:23.02
選択がないので1つでも落すとアボン。
0167デフォルトの名無しさん2012/02/07(火) 17:31:58.14
落とされない大学なんぞに意味はないな。
0168デフォルトの名無しさん2012/02/07(火) 17:57:20.43
情報系じゃなかったけど
レポート半期で12本初回抜き打ち試験中間試験定期試験とか当たり前のようにやって
全部提出出席しても試験でしくじって落とされるやつがちらほらいて地獄絵図だった
後輩にはうちの大学には絶対に来るなと忠告したよ
0169デフォルトの名無しさん2012/02/07(火) 18:34:08.84
何の為に大学に行ってるの?
0170デフォルトの名無しさん2012/02/07(火) 18:35:02.15
行かないと社会が人間扱いしてくれないからとりあえず
0171デフォルトの名無しさん2012/02/07(火) 18:43:35.47
>>168
普通だろそれ
0172デフォルトの名無しさん2012/02/07(火) 18:53:04.52
必修だから落とされないとか、そんな世の中なの?
0173デフォルトの名無しさん2012/02/07(火) 18:59:29.22
関数func()内で
int data[177][23]が定義されており、データが関数内で入れられるとします。

この関数の外から、2次元配列のポインタのポインタを渡し、int data[177][23]のアドレスを引数で返したいのですが、


void func( �@ ){
int data[177][23];

�A = data;
}

void func2(void){
0174デフォルトの名無しさん2012/02/07(火) 19:01:40.10
失礼しました。途中で送信してしまったようで・・・
改めまして


関数func()内で
int data[177][23]が定義されており、データが関数内で入れられるとします。

この関数の外から、2次元配列のポインタのポインタを渡し、int data[177][23]のアドレスを引数で返したいのですが、


void func1(�@){
int data[177][23];

�A = data;
}

void func2(void){
�B // 2次元配列のポインタのポインタの宣言

func1(�C);
}

�@〜�Cの記述は、どの様にしたらよろしいでしょうか?
01751742012/02/07(火) 19:03:24.76
int data[177][23]の実体はfunc1()が持ち、
他の関数からその中身を参照にしたいのです(グローバル変数使用不可)

宜しくお願い致します。
0176デフォルトの名無しさん2012/02/07(火) 19:06:05.04
> 関数func()内で
0177デフォルトの名無しさん2012/02/07(火) 19:07:47.55
mallocを使うか根本的なところから見直す
0178デフォルトの名無しさん2012/02/07(火) 19:15:15.24
void func1( *(*pArray)[23]){
  int data[177][23];

  *pArray = data;
}

void func2(void){
  int *pArray[177][23]; // 2次元配列のポインタのポインタの宣言
  int ans;

  func1(pArray);

  ans = pArray[0][0] + pArray[176][22];
}

イメージとしてはこんな感じですが、もちろんこれでは上手く行きません・・・

01791742012/02/07(火) 19:17:27.61
int data[177][23]をグローバルに持って行ければ全然問題ないのですが、
事情があって、それが出来ないのです・・・

※私に与えられてる権限としては、func1の引数の変更、func2の製作
0180デフォルトの名無しさん2012/02/07(火) 19:18:57.51
ゴミコード発生の瞬間である。
0181デフォルトの名無しさん2012/02/07(火) 19:20:25.28
やりたい事がさっぱり分からん
エスパー待ち
0182デフォルトの名無しさん2012/02/07(火) 19:25:29.62
その実装だと誤動作するよ。自動変数で調べてね。
以下のいずれかの修正をしてもらう必要がある。
�@
void getData(*****) {
. static int data[N][M];
}
�Aソースを分割して、
static int data[N][M];
void getData(*******);
�B
malloc つかう。
01831742012/02/07(火) 19:29:37.65
>>182
おお!
すみません・・・static扱いでお願いします。
実際はstaticでした。懸案事案の抽象化に失敗してしまいました・・・



void func1(�@){
  static int data[177][23];

  �A = data;
}

void func2(void){
  �B // 2次元配列のポインタのポインタの宣言

  func1(�C);
}
0184デフォルトの名無しさん2012/02/07(火) 19:31:48.22
>>181
知りたいのは、「2次元配列のポインタのポインタ」を引数に渡してアドレスを入れてもらう
やり方です
0185デフォルトの名無しさん2012/02/07(火) 19:43:35.47
�@int*** value
�A*value
�Bint** data
�C&data
で、できると思うけど、何がやりたいのかは知らないし、あまりよくないコードな気がする。
やりたいこと書いて代案出してもらったほうがいいと思うけど、まあ、とりあえず。
0186デフォルトの名無しさん2012/02/07(火) 19:53:39.40
ローカルstaic変数のアドレスを取るとかグローバルと大差ないわ
いや、グローバルはグローバルだって意識できるからまだいいけど
これじゃあソレもできないから最低最悪だな
0187デフォルトの名無しさん2012/02/07(火) 20:40:54.32
静的なオブジェクト/動的なオブジェクト(free必要)
これ以上の情報を意識する必要はないし、意識しなけりゃならないのは最低最悪。
グローバル? 今時使わないよね。w
0188デフォルトの名無しさん2012/02/07(火) 20:44:17.33
質問
関数って引数は何個までとか何バイトまでにした方が良いってのはある?
ある程度を超えるとメモリに積む作業が増えるので急激に遅くなる、とか。
大差無いのかな。
0189デフォルトの名無しさん2012/02/07(火) 20:49:42.42
そんなことを気にするのはお前には早すぎるよ。
0190デフォルトの名無しさん2012/02/07(火) 20:54:56.96
>>187
こいつ最高にアホ
0191デフォルトの名無しさん2012/02/07(火) 20:59:26.69
>>189 初心者は速度を気にしちゃいけないなんて決まりがあったのか。
知らなかったわ、すまん。
0192デフォルトの名無しさん2012/02/07(火) 21:03:19.05
>>188
変数固めて構造体にして、ポインタで渡す
俺なら
0193はちみつ餃子 ◆8X2XSCHEME 2012/02/07(火) 21:03:52.10
>>188
パフォーマンスへの影響は環境によるので実測しないとなんとも言えないけど、
計算量的によほど厳しい条件下でなければはっきりわかるような差は出ないよ。
回数が多く呼ばれる関数ならちょっとした差が全体に多きく影響することもあるけど、
どこまで許容できるかは程度問題なのでスパッと基準を決められるものではないな。
0194デフォルトの名無しさん2012/02/07(火) 21:07:52.89
問題になるまでほっときゃいい
腐りだしたら破棄して作りなおしゃいい
ダしゃいいタマがうずくなら
0195デフォルトの名無しさん2012/02/07(火) 21:09:28.84
>>191
決まりではないが鉄則ではある
0196デフォルトの名無しさん2012/02/07(火) 21:10:39.31
>>188
大雑把に1KB以下なら気にしなくていい
0197はちみつ餃子 ◆8X2XSCHEME 2012/02/07(火) 21:12:29.93
>>192
Windows API はそういう感じだね。

でも、その構造体だってどこかでメモリを消費するわけだし、
構造体に値を放り込むのだってゼロコストなわけじゃない。
同じデータをある程度何度も繰り返して渡すような状況ならいいが、
そうでないならパフォーマンスの差はほとんど出ないと思う。

バイナリ互換性を維持したまま構造体に要素を追加して拡張できる点で有利ではあるので、
長期的にインターフェイスを維持したいときには考慮に値する方法と言える。
0198デフォルトの名無しさん2012/02/07(火) 21:19:43.77
こういうくだらん話しか出てこないから初心者は気にすることはないってこと。
0199デフォルトの名無しさん2012/02/07(火) 21:42:00.85
1KBも引数あったら俺なら確実に間違える。
正しい順序、個数で記述するには丸以上1日かかる。自信がある。
0200デフォルトの名無しさん2012/02/07(火) 21:43:16.81
回答ありがとうございました。
超特大構造体ならさすがにポインタ渡すけど、
十数バイトで気にする事はないんですね。
0201デフォルトの名無しさん2012/02/07(火) 21:45:15.31
そんなことより正しい設計かどうかを気にするようにした方がいい。
0202デフォルトの名無しさん2012/02/07(火) 21:47:06.98
>>197
なんだその程度の理解か
0203デフォルトの名無しさん2012/02/07(火) 23:02:11.05
>>200
10数バイトって…
int 4個で気にしてちゃ何もできんだろw
0204デフォルトの名無しさん2012/02/07(火) 23:25:21.50
CreateFile()で引数7個、28バイトだぞ。
0205デフォルトの名無しさん2012/02/07(火) 23:27:51.80
>>149
また楽しいコードかいてるねぇ
再帰使わないで書いたのはいいだろう

ただ、あえてfor文内にあえて詰め込まなくても。。
0206デフォルトの名無しさん2012/02/07(火) 23:30:35.69
CreateWindowEx()で12個。
0207デフォルトの名無しさん2012/02/07(火) 23:31:11.68
MyCreateWindowExは引数一つだよ
0208デフォルトの名無しさん2012/02/07(火) 23:33:16.33
>>205
質問じゃないならヘボは出てこなくていいよ。
0209デフォルトの名無しさん2012/02/07(火) 23:38:09.82
>>208
ブーメラン?
0210デフォルトの名無しさん2012/02/07(火) 23:39:44.65
どこのヘボもいつも同じことしか言わないな。
0211デフォルトの名無しさん2012/02/07(火) 23:41:06.48
なんでこう見下すやつが出てくるのかね
現実世界で認められてないの?
0212デフォルトの名無しさん2012/02/07(火) 23:43:12.85
自覚のないヘボは甘やかすと大変なことになるんだよ。
0213デフォルトの名無しさん2012/02/07(火) 23:45:40.05
他人を甘く見るやつはだいたい足元すくわれてるよね
0214デフォルトの名無しさん2012/02/07(火) 23:46:41.93
>>50みたいに?
0215デフォルトの名無しさん2012/02/07(火) 23:47:44.81
ヘボなくせに他人を甘く見てるのは>>205だろwww
0216デフォルトの名無しさん2012/02/07(火) 23:48:55.96
       / \  /\ キリッ
.     / (ー)  (ー)\    <「再帰使わないで書いたのはいいだろう」
    /   ⌒(__人__)⌒ \
    |      |r┬-|    |
     \     `ー’´   /
    ノ            \
  /´               ヽ
 |    l              \
 ヽ    -一””””~~``’ー?、   -一”””’ー-、.
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))

          ____
        /_ノ  ヽ、_\
 ミ ミ ミ  o゚((●)) ((●))゚o      ミ ミ ミ   <だっておwww
/⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\   /⌒)⌒)⌒)
| / / /     |r┬-|    | (⌒)/ / / // 
| :::::::::::(⌒)    | |  |   /  ゝ  :::::::::::/ 
|     ノ     | |  |   \  /  )  /
ヽ    /     `ー’´      ヽ /    /
 |    |   l||l 从人 l||l      l||l 从人 l||l  バンバン
 ヽ    -一””””~~``’ー?、   -一”””’ー-、
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))
0217デフォルトの名無しさん2012/02/07(火) 23:49:31.47
別に甘く見てないよ
そんなに行数を少なくすることが重要なんだろうかというただの感想

そう思わないか?
0218デフォルトの名無しさん2012/02/07(火) 23:51:34.03
「そう思わないか? 」 キリッ(AA略
0219デフォルトの名無しさん2012/02/07(火) 23:53:36.13
もしかして>>149だった?
だったらすまん
0220デフォルトの名無しさん2012/02/07(火) 23:55:38.61
いや、おれは>>50だけど。
0221デフォルトの名無しさん2012/02/07(火) 23:59:32.22
1行プロコンじゃないんだから、わかりやすく書けばいいのにって思う
せっかくの高級言語なんだしさぁ。。
0222デフォルトの名無しさん2012/02/08(水) 00:00:53.26
わかりやすく書いたら1行に収まるだろ
制御文増やすとわかりにくくなる
0223デフォルトの名無しさん2012/02/08(水) 00:04:48.96
Cは低級言語だよ。
まったく、基礎知識のあるやつがほとんどいないのが原因だよな。
0224デフォルトの名無しさん2012/02/08(水) 00:06:58.98
ttp://ja.wikipedia.org/wiki/%E9%AB%98%E7%B4%9A%E8%A8%80%E8%AA%9E
0225デフォルトの名無しさん2012/02/08(水) 00:10:01.41
なんかWikiもものによってひどいよね。
せめて計算機の勉強した人が書けばいいのに。
0226デフォルトの名無しさん2012/02/08(水) 00:12:30.87
>>225
じゃあ書き直せば?
0227デフォルトの名無しさん2012/02/08(水) 00:13:36.96
お前がな。
0228デフォルトの名無しさん2012/02/08(水) 00:14:47.51
>>227
基礎知識がない呼ばわりしてるくせして矛盾したこと言ってんじゃねぇぞ
0229デフォルトの名無しさん2012/02/08(水) 00:21:26.67
>>152 全部出してやっと評価対象になるのに、3つも出さないのは評価対象外
0230デフォルトの名無しさん2012/02/08(水) 00:27:31.99
>>228
あるんだったらお前が書けよ。
0231デフォルトの名無しさん2012/02/08(水) 00:29:41.89
>>230
じゃあ、今のままでよい
0232デフォルトの名無しさん2012/02/08(水) 00:31:03.84
しかし、>>224の分け方だったらそもそも分ける必要ねーだろって感じだな。
0233デフォルトの名無しさん2012/02/08(水) 00:36:36.62
逆にCを低級と思う理由は?
0234デフォルトの名無しさん2012/02/08(水) 00:37:37.51
まともに使えるやつが少ないの見ればわかるだろJK
0235デフォルトの名無しさん2012/02/08(水) 00:38:55.32
そういう定義なの?低級(低水準)ってw
0236デフォルトの名無しさん2012/02/08(水) 00:42:57.25
関数型 > Web系・シェル、VM動的型付け
> VM静的型付け > C++ > C > asm > バイナリ

こんな感じか
0237デフォルトの名無しさん2012/02/08(水) 00:45:03.52
またヘボがわけのわからんもの出してきたな…
0238デフォルトの名無しさん2012/02/08(水) 00:46:48.19
>>237
えっ?おまえが書いたんじゃなかったの?w >>236
0239デフォルトの名無しさん2012/02/08(水) 00:50:26.07
なんだ、英文のがよっぽどまともじゃないか。
http://en.wikipedia.org/wiki/High-level_programming_language
0240デフォルトの名無しさん2012/02/08(水) 00:51:27.59
低級高級なんて感覚的なもんにちゃんとした定義があると思ってるのか
ハードウェアよりであれば低級
Cが高級だったのは昔の話
0241デフォルトの名無しさん2012/02/08(水) 00:54:45.23
Low-level programming languageのwikiには、一般には機械語かアセンブラ言語を指すって
書いてあるけどね。。

In computer science, a low-level programming language is a programming language that provides little or no abstraction from a computer's instruction set architecture. Generally this refers to either machine code or assembly language.
0242デフォルトの名無しさん2012/02/08(水) 00:55:04.67
>>239
翻訳してるだけじゃねーか
しかもTalkで議論されてるw
0243デフォルトの名無しさん2012/02/08(水) 00:56:59.15
激しく
ど う で も い い
0244デフォルトの名無しさん2012/02/08(水) 00:57:06.02
>>242
いやいや、翻訳しただけだよもちろん、そう書いてあるよってだけだからw
0245デフォルトの名無しさん2012/02/08(水) 00:58:13.06
あ、>>242が>>241に対して言ってるのかと思った
>>244は無視して
0246デフォルトの名無しさん2012/02/08(水) 00:59:55.63
>>243
乙
一般に低水準(低級)言語と言った場合は機械語かアセンブリ言語を指す
0247デフォルトの名無しさん2012/02/08(水) 01:16:48.07
>>240
0248デフォルトの名無しさん2012/02/08(水) 01:21:06.85
www
0249デフォルトの名無しさん2012/02/08(水) 01:27:33.93
変数が多く、重い様に感じます
どのようにすれば軽くなりますか?
また、ifよりswitchを使用したほうが重くなるのでしょうか?

http://codepad.org/KPVko90j
0250デフォルトの名無しさん2012/02/08(水) 01:29:36.88
>>249
うっせーバカ
0251デフォルトの名無しさん2012/02/08(水) 01:31:49.96
>>249
最適化オプションいれてみた?
-Osとか-O3とか
0252デフォルトの名無しさん2012/02/08(水) 01:34:03.04
だから厳密な定義なんてないっての
http://stackoverflow.com/questions/5020246/how-low-does-c-go-as-a-low-level-language
こんだけ盛り上がる話題だぞ
0253デフォルトの名無しさん2012/02/08(水) 01:36:05.84
つまりOOP未満は低級だと言いたいやつが多いと言うことだな
0254デフォルトの名無しさん2012/02/08(水) 01:36:53.53
だったらこんな古典言語スレに来なきゃいいのに
0255デフォルトの名無しさん2012/02/08(水) 01:50:47.06
>>251
-Osや-O3とは何でしょうか?
特に最適化オプションは行っていません
0256デフォルトの名無しさん2012/02/08(水) 01:53:34.37
>>255
簡単に行ってしまえば、多少下手な書き方しても、コンパイラが
その処理の意味を理解して、一番無駄のないマシン語に書き換えて
くれるようにするオプションです

>>249程度のソースなら、最適化オプションを入れれば、
ifやswitchなどほぼ関係なくなります
0257デフォルトの名無しさん2012/02/08(水) 01:54:13.89
>>249
http://codepad.org/lFsULIT3
0258デフォルトの名無しさん2012/02/08(水) 01:54:58.63
>>256
了解しました
有難う御座います
0259デフォルトの名無しさん2012/02/08(水) 01:55:43.81
出たwww
もうインデントとかしないで、1行にズラーと並べちゃえよw
0260デフォルトの名無しさん2012/02/08(水) 01:56:17.42
>>257
貴重なサンプル有難う御座います
0261デフォルトの名無しさん2012/02/08(水) 01:56:29.95
>249
まともなコンパイラーで最適化オプション指定すれば条件分岐は全く使われないから
読みやすいコードを書くことに専念するべき。
switch分を使いたいのは、その条件文でフラグビット立ててジャンプテーブルを自作するのだろうか
可読性が損なわれるので現在のコンパイラーではやるべきでは無い。

0262デフォルトの名無しさん2012/02/08(水) 01:58:33.22
>>259
ヘボな上にセンスもないんだな。
0263デフォルトの名無しさん2012/02/08(水) 01:59:26.98
このスレは、簡単なCの宿題を、極力少ない行数で書いて
「おれってすげぇだろ」ってスレだったのかw

理解したwww

(このレスに対して返されるであろうレス)
 この程度で凄いとか言ってるおまえは相当な低能だなwww
0264デフォルトの名無しさん2012/02/08(水) 02:00:29.75
>>262
センスもくそも、そんなfor内につっこむソース書くほうがセンスなしw
0265デフォルトの名無しさん2012/02/08(水) 02:00:31.81
>>249
重さうんぬんはプログラムを完成させてプロファイル取ってから考えればいい。
もちろん、あらかじめ何が問題になるか予想できる場合は対策はすべきだけどね。
0266デフォルトの名無しさん2012/02/08(水) 02:02:33.21
>>264
理解できないからってファビョるなよ。
0267デフォルトの名無しさん2012/02/08(水) 02:03:49.47
>>261
わかりました
読みやすさを優先させた方が良いですね
有難う御座います
0268デフォルトの名無しさん2012/02/08(水) 02:06:14.90
>>265
了解しました
有難う御座います
0269デフォルトの名無しさん2012/02/08(水) 02:06:38.98
>>261
> まともなコンパイラーで最適化オプション指定すれば条件分岐は全く使われない
なんてありえるのか?
0270デフォルトの名無しさん2012/02/08(水) 02:07:05.67
>>266
この程度が理解できないようじゃ話にならんだろw
そんなこと言うくらいだから高度な書き方だとでも
思ってるのか?もしかしてw
仕事ではやんなよ、読みにくいだけだからw
0271デフォルトの名無しさん2012/02/08(水) 02:08:28.11
じゃぁファビョるなよ。
0272デフォルトの名無しさん2012/02/08(水) 02:10:28.53
乙
0273デフォルトの名無しさん2012/02/08(水) 02:11:49.29
わざわざ糞コードに書き直してる時点で性格悪いだろ
0274デフォルトの名無しさん2012/02/08(水) 02:14:30.17
口だけ出すヘボよりマシなんじゃなイカ?
0275デフォルトの名無しさん2012/02/08(水) 02:14:45.36
ん?わざわざprintf開いて三項演算で書いてる糞ソースのこと?
0276デフォルトの名無しさん2012/02/08(水) 02:17:51.03
横からでアレだが、
>>275
お前もヘボいことばっか言ってないでちょっとは貢献したらどうだ?
0277デフォルトの名無しさん2012/02/08(水) 02:20:40.69
>>257
少なくともこれは貢献でも何でもない
ただの自己満ソース
自分で書いて一人でニヤニヤしてればいいのに
わざわざ晒して恥ずかしい
0278デフォルトの名無しさん2012/02/08(水) 02:21:31.01
だからそんなこと言うならお前が何か貢献しろよ。
日本語も読めないのか?
0279デフォルトの名無しさん2012/02/08(水) 02:21:42.18
三項演算子のネストにカンマ演算子多用とか普通に糞コードですから、
そういうのは一人でLispとかでやっててください
0280デフォルトの名無しさん2012/02/08(水) 02:24:36.72
>>257
こんな書き方もできるんだぁ
すごーい
勉強になるわぁ


これでいいかな。。
0281デフォルトの名無しさん2012/02/08(水) 02:27:40.62
>269

index = w;

index << 3;

index &= z

index *= ofset-of-functions

jmp [base-address + index]
0282デフォルトの名無しさん2012/02/08(水) 02:41:52.07
間違えた
×index &= z
○index |= z
0283デフォルトの名無しさん2012/02/08(水) 02:43:56.43
そんなコンパイラはないだろ。
あるんだったらなんてのか教えてくれ。
0284デフォルトの名無しさん2012/02/08(水) 02:51:00.90
こうだな
index = w;

index << 3;

index |= z

address = addres_table[index];

jmp address;
0285デフォルトの名無しさん2012/02/08(水) 03:57:03.99
>>249
標準関数の呼び出しはコンパイラーの最適化オプションで一回の呼び出しにまとめられないので
出力文字列はバッファーに貯めて、最後に一度だけprintfを呼ぶべき
それによってコンパイラーが出来る最適化の範囲が大きくなる

速度にクリティカルなプログラムを書くなら、ifかswitchなどにこだわるより、
メモリーアライメントなどをよく勉強して効率のよいデーター構造は何かなどを
意識した方が良い。
0286デフォルトの名無しさん2012/02/08(水) 06:22:05.47
printf()が問題になるようならそもそもの設計が間違ってるけどな。
0287デフォルトの名無しさん2012/02/08(水) 06:41:44.73
>>249の無駄な判定には誰も突っ込まないところが凄いw
0288デフォルトの名無しさん2012/02/08(水) 06:47:20.88
それはprintf()にくらべたら無視できる。
0289デフォルトの名無しさん2012/02/08(水) 06:49:27.90
それにロジックは>>257で解決してんじゃねーか?
0290デフォルトの名無しさん2012/02/08(水) 07:00:04.96
>>257も>>249よりマシだけど無駄判定じゃねーかw
0291デフォルトの名無しさん2012/02/08(水) 07:15:31.95
じゃぁprintf()1回で模範回等頼んだ>>290
0292デフォルトの名無しさん2012/02/08(水) 07:23:29.97
printf("%d%s\n", i, m3 == 3 ? (m3 = 0, m5 == 5) ? m5 = 0, "FizzBuzz" : "Fizz" : m5 == 5 ? m5 = 0, "Buzz" : "");
0293デフォルトの名無しさん2012/02/08(水) 07:34:32.99
これでどや。
http://codepad.org/yNjC44pw
0294デフォルトの名無しさん2012/02/08(水) 08:07:27.08
ロジック以前に、無理矢理な三項演算とカンマつなぎをどうにかしろw
0295デフォルトの名無しさん2012/02/08(水) 08:10:31.56
【韓国ブログ】台湾にあふれる日本文化…ここは一体どこの国?
【社会ニュース】 2012/02/07(火) 12:08
http://news.searchina.ne.jp/disp.cgi?y=2012&d=0207&f=national_0207_100.shtml

  ワーキングホリデーで台湾に滞在する韓国人ブロガーの「JK」さんは、
現在生活している所が日本なのか台湾なのか分からなくなるほど、台湾には日本文化が浸透していると語った。


  「ときどき台湾が日本なのか台湾なのか分からなくなる時がある。
なぜなら台湾には日本企業があふれているからだ」と述べ、台湾はどこに行っても日本のフランチャイズ店ばかりが目に入ると語った。
ブログには、台湾の繁華街に日本文化が浸透していること伝えるため、「和民」「ユニクロ」「三越」「ダイソー」など日本企業の看板が並ぶ台湾の街の写真を掲載した。

  台湾が日本のように感じる要因として、多くの台湾人女性が日本のファッションや日本のヘアスタイルを取り入れていることや、
日本人観光客が多く日本語が飛び交っていること、漢字文化圏のため看板には漢字が使われていることなどを挙げた。

  日本文化が定着するあまり、JKさんが日本人客に間違われるケースもあったという。「店員に英語で話しかけると、日本語で応対しようとしていた。
私がアジア人だから日本人だと錯覚したのだろう」とエピソードを紹介した。

  台湾に進出する日本企業の中でも、JKさんが特に気に入っているのは必要なものがすべて揃う「ダイソー」だそうで、売られている多くの商品に日本語の説明書きがあるため、
やはり自分が日本にいるような錯覚に陥るのだと述べた。(編集担当:新川悠)
0296デフォルトの名無しさん2012/02/08(水) 08:36:01.09
三項演算子とカンマ演算子に狂ったように固執してるやつが
初心者に糞ソースを常駐解答するスレです
0297デフォルトの名無しさん2012/02/08(水) 08:52:27.65
日本は近い将来放射能と首都崩壊で消えてなくなるから
いまのうちにもっとたくさん台湾に日本の文化を継承してもらいたいね
0298デフォルトの名無しさん2012/02/08(水) 10:25:43.54
>>293
http://codepad.org/JQxv8o1s
0299デフォルトの名無しさん2012/02/08(水) 10:51:06.34
#include <stdio.h>

int main(){
int i;
char *s = "Fizz¥0Buzz";

for (i = 1; i <= 100; i++) {
if (i % 3 == 0)
printf(s);
if (i % 5 == 0)
printf(s + 5);
if (i % 3 && i % 5)
printf("%d", i);
putchar(' ');
}

return 0;
}
0300デフォルトの名無しさん2012/02/08(水) 10:57:18.21
速度を気にする時に%なんて使うもんじゃないよね。
0301デフォルトの名無しさん2012/02/08(水) 10:59:52.60
%やめて速度を気にするのなら、条件判定についてもちゃんと考えるべきだよねw
0302デフォルトの名無しさん2012/02/08(水) 11:30:26.34
>>299
printfに奇数アドレス指定すんなスットコドッコイ
0303デフォルトの名無しさん2012/02/08(水) 11:44:50.19
>>302
char *にそんな制限ないよ。
0304デフォルトの名無しさん2012/02/08(水) 13:38:48.75
>>302
printfにそんなしばりねーわ、このタコ。
お前1回休みな。
0305デフォルトの名無しさん2012/02/08(水) 13:56:39.73
特殊な環境なのかね?
奇数アドレスの参照発生で例外投げるとか、ペナルティで遅くなるとか
0306デフォルトの名無しさん2012/02/08(水) 13:58:47.54
奇数アドレスからのワードアクセスかなんかと勘違いしてるんだろ。
今時奇数アドレスって言うのもアレだけどな。
0307デフォルトの名無しさん2012/02/08(水) 14:15:22.32
いやいや、速度の話してるんだから
関数に渡すポインターのアドレスはCPUのメモリーアクセスアライメントに合わせろよ(w
memcpyのasmソースよく見ろって
0308デフォルトの名無しさん2012/02/08(水) 14:26:49.84
意味無し。
0309デフォルトの名無しさん2012/02/08(水) 14:31:05.98
>>307
なんでmemcpyが出てくるんだよ。
どうせならprintf()のソースを見ろよ。
0310デフォルトの名無しさん2012/02/08(水) 14:34:20.51
開始アドレスを整列させても、どうせ全部スキャンするんだから、
影響なんてあるわけがない。
0311デフォルトの名無しさん2012/02/08(水) 14:36:37.54
アライメントとかそのへんの単語を最近覚えて使いたくてしょうがなかったんだろ
駆け出しの頃にはよくある病気だから暖かく見守ってやりなよ
0312デフォルトの名無しさん2012/02/08(水) 14:37:54.61
memcpy は block move で済むからアドレッシングによる差が出るだろうけど

printf は format 文字列のパースや引数列の文字列化作業なんで
1文字ずつ逐次やる(=1バイト単位で捜査する)しかないんじゃないの?
その捜査の過程でペナルティ発生させるような気配がするけど
0313デフォルトの名無しさん2012/02/08(水) 14:45:29.76
覚えたてのお経をとなえてみたのか。本当に>>50はダメな奴だな。
0314デフォルトの名無しさん2012/02/08(水) 15:10:17.42
>312

どう考えてもビットマスクするだろ

このスレは実務経験の無いアホばっかりだな
0315デフォルトの名無しさん2012/02/08(水) 15:13:22.87
ビ ッ ト マ ス ク ? ? ?
0316デフォルトの名無しさん2012/02/08(水) 15:14:07.41
>>314
で、printf()のソースは確認したのか?
0317デフォルトの名無しさん2012/02/08(水) 15:18:11.04
>>314
SSE/MMX 使った画像処理とかで、境界とそれ以外に場合分けして処理するぐらいなら実装したことあるけど
printf の実装をしたことがないのでなんとも
0318デフォルトの名無しさん2012/02/08(水) 15:19:40.56
極限まで好意的に考えてRISC系のみでx86でプログラミングしたことないのかな。
0319デフォルトの名無しさん2012/02/08(水) 15:26:14.91
>>318
RISC系だって実際の作業効率考えたらコンパイラに最適化を任せた方がいい。
たぶんSC/MPレベルのコントローラチップを想定してるんだろう。
0320デフォルトの名無しさん2012/02/08(水) 16:18:42.84
class A
{

private m(){}

private b(){}


}

これをC言語で似たようにして書く方法はありませんか?
0321デフォルトの名無しさん2012/02/08(水) 16:23:05.97
1つのファイルに入れてstaticつければいい。
0322デフォルトの名無しさん2012/02/08(水) 17:05:19.14
http://codepad.org/eXgCPWT1

ダイクストラ法で最短経路を
求めるプログラムを拾って改変したのですがエラーが出てしまいました
これの原因は何でしょうか?
0323デフォルトの名無しさん2012/02/08(水) 17:07:44.00
>>322
エラー行が赤くなってるんだから丹念に見ろよ
一つ目は18と21の間がカンマじゃなくてスペースになってるぞ

0324デフォルトの名無しさん2012/02/08(水) 17:09:16.85
>>323
自分がアホすぎて悲しい
ありがとうございました
0325デフォルトの名無しさん2012/02/08(水) 17:09:44.08
>320
typedef struct {
struct MyVtbl *vtbl;
} MyClass *pMyClass;
typedef struct MyClass MyClass;
struct MyVtbl{
void (*m)(pMyClass);
void (*b)(pMyClass);
};

static MyVtbl myVtbl;

pMyClass MyClassConstructor(){
myVtbl.m = func_m;
myVtbl.b = func_b;
MyClass *pClass = malloc(sizeof(MyClass));
pClass->vtbl = &myVtbl;
return pClass;
}

void m(pMyClass this){}
void b(pMyClass this){}
0326デフォルトの名無しさん2012/02/08(水) 17:11:12.60
>>322
, が足りない
0327デフォルトの名無しさん2012/02/08(水) 20:02:44.62
128ビット16進数の乱数をつくるにはどうすればいいですか?
0328 ◆QZaw55cn4c 2012/02/08(水) 20:21:27.74
>>327
32bit 乱数を出力してくれる系ならそれを 4つ組み合わせればよい。
それでだめな乱数もあるが、メルセンヌツイスタならほぼOKだ。

ggr メルセンヌツイスタ
0329デフォルトの名無しさん2012/02/08(水) 20:23:31.78
ほぼだってw
0330デフォルトの名無しさん2012/02/08(水) 21:36:00.84
最近ようやくメルセンヌツイスタって言葉を知ったので使いたくてしょうがなかったんだな
0331デフォルトの名無しさん2012/02/08(水) 21:55:45.18
最近は、ハード的に物理乱数生成するマイコン(SoC)あるから
それ使えるならそれがベストだ
0332デフォルトの名無しさん2012/02/08(水) 21:56:41.37
ベストじゃねーよカス
0333デフォルトの名無しさん2012/02/08(水) 21:57:03.64
あ、しまったここPC板だったw
ついつい組み込みの考えでレスを。。
0334デフォルトの名無しさん2012/02/09(木) 00:30:19.61
もう、ivy bridge専用でいいよ。
0335デフォルトの名無しさん2012/02/09(木) 03:00:15.30
最近知ったんだねっていうと昔から知ってますっていうからやめといたほうがいい
0336デフォルトの名無しさん2012/02/09(木) 03:06:16.66
お互い顔見えないからハゲとノノシるとフサフサですと言い返すみたいなもんだな
0337デフォルトの名無しさん2012/02/09(木) 03:08:03.77
ハゲはだまってろ。
0338デフォルトの名無しさん2012/02/09(木) 03:17:39.71
>>333
PC…板?
0339デフォルトの名無しさん2012/02/09(木) 05:18:17.37
▼PC等
0340デフォルトの名無しさん2012/02/09(木) 07:00:00.33
>>335
最近身にしみたんだね。
0341デフォルトの名無しさん2012/02/09(木) 07:34:21.88
C 言語においてmain 関数が正常終了する際にexit(0); を実行し,異常終了する際にはexit(1);
を実行することがある
なぜかわかる方いますか?
0342デフォルトの名無しさん2012/02/09(木) 07:39:51.13
>>338
pcカテだようるさいなぁ。。
0343デフォルトの名無しさん2012/02/09(木) 07:46:40.44
>>341
スタートアップルーチンがそうなっているんだろ。お前のところではな。
0344デフォルトの名無しさん2012/02/09(木) 08:27:51.55
構造体を動的メモリで確保したのですが、解放がうまくいきません。
#define NUM 20000
typedef struct{
..............
} KOZO;

int main()
{
int i;
KOZO **kozo;

for(j=0;j<100;j++) {
以下のコードをループさせる
kozo=(KOZO **)calloc(NUM,sizeof(KOZO *)) ;
for(i=0;i<NUM;i++){
kozo[i]=(KOZO *)malloc(sizeof(KOZO));
memset(kozo[i],0,sizeof(kozo[i]));
}
 このように、NUM個の構造体をmallocで確保して
ポインタをkozo[]に入れています。
****** この間に構造体のメンバに対して処理を行うコード *****
解放は
for(i=0;i<NUM;i++) free(kozo[i]);
free(kozo);
} /*for(j=0;j<100;j++)*/

どうも free(kozo[i]) ですべての領域を解放していないようなのです。
for(j=0;,,)ループの一回目は問題なく終了するのですが
二回目は解放のところでエラーがでます。

もう、3日間つまづいています。
どなた様か、よろしくご教授ください。
0345デフォルトの名無しさん2012/02/09(木) 08:33:35.19
日本語もまともに使えないヴァカには無理
C言語とか以前の問題
プログラムの前に日本語を5年ほど勉強してこいゴミ
0346デフォルトの名無しさん2012/02/09(木) 08:35:45.59
>>344
問題が再現するコンパイル可能な最小のコードを示せ
0347デフォルトの名無しさん2012/02/09(木) 08:42:58.05
>>344
free(kozo)はループに入れちゃいかんだろ。
つーか、sizeof(KOZO)とsizeof(kozo[i])が混在していてうざい。
0348デフォルトの名無しさん2012/02/09(木) 08:43:32.81
calloc()とmalloc()+memset()が混在しているのもダメダメだな。
0349デフォルトの名無しさん2012/02/09(木) 08:44:36.55
>>347
お前の答え方のほうがよっぽどうざいよ。
0350デフォルトの名無しさん2012/02/09(木) 08:45:07.16
>>347
ちゃんと読め
0351デフォルトの名無しさん2012/02/09(木) 08:45:31.33
そういうおまえはもっとうざい。
03523472012/02/09(木) 08:47:58.17
>>350
おっと、確かに。

>>344
こりゃ失礼。そのコード断片ではあってそうに見える。なので、>346。
0353デフォルトの名無しさん2012/02/09(木) 08:52:53.87
もっと回答者の身になって分かりやすい回答を心がけろ。
まだコードを直せるまともな回答が出てないぞ。
03543502012/02/09(木) 08:54:26.89
>>351
お前に言われる筋合いはねーよ池沼
0355デフォルトの名無しさん2012/02/09(木) 08:55:13.21
>>353=糞
0356デフォルトの名無しさん2012/02/09(木) 08:57:16.61
>>346
示してますよ?
何で答える人ってそうやって命令口調なんですか?
0357デフォルトの名無しさん2012/02/09(木) 08:58:26.42
kozo=(KOZO **)calloc(100,sizeof(KOZO *)) ;

for(j=0;j<100;j++) {
以下のコードをループさせる
kozo[j]=(KOZO *)malloc(sizeof(KOZO) * 200);
memset(kozo+j, 0, sozeof(KOZO) * 200);
/*
for(i=0;i<200;i++){
memset(kozo[j] + i,0,sizeof(kozo[i]));
}
*/
}
0358デフォルトの名無しさん2012/02/09(木) 09:05:15.08
>>354
お前は>>350じゃねーだろw
0359デフォルトの名無しさん2012/02/09(木) 09:08:49.96
>>356
お前の態度がそうさせる。
03603442012/02/09(木) 09:10:55.59
みなさん、早速ありがとうございます。
「再現可能な最小コード」を用意しようとして
途中の構造体のメンバ処理などをザックリ切り取ってみましたが、
それではエラーの再現はありませんでした。

もしかすると構造体の動的メモリ確保が問題なのではなく、
途中のメンバ処理で、領域外書き込みかなにかやらかしているかもしれません。

構造体のサイズは1200Bほどで、これを25000個ぐらい用意するので
全体で27MBくらいになり、巨大すぎるのかな?とも思ったりします。
ちなみにOSはXPでメモリは1.5Gでやってますw。
0361デフォルトの名無しさん2012/02/09(木) 09:20:38.47
完全にパーフェクトにお前のコードの問題。
03623442012/02/09(木) 09:24:03.85
>>357さん
確かに memset(kozo[i], 0, sozeof(KOZO));ですね。
sizeof(kozo[i]) では、KOZOポインタのサイズになってしまいますね。

ありがとうございます。
ちょっと進展しました。
0363デフォルトの名無しさん2012/02/09(木) 09:28:15.80
コードというよりこいつの脳の問題
0364デフォルトの名無しさん2012/02/09(木) 09:29:36.12
>>344頭悪すぎワラタw
よく恥ずかしくないなw
0365デフォルトの名無しさん2012/02/09(木) 09:33:48.47
大丈夫。下には下がいる。>>50とか
0366デフォルトの名無しさん2012/02/09(木) 09:34:39.62
>>362
「確かに」じゃねーよゴミ
知っててできないのは入門者とか以前の問題
仕事でも知っててミスする奴は不要
社会の負担になるだけだから出てくんなよ
0367デフォルトの名無しさん2012/02/09(木) 10:11:55.39
お前がな。
0368デフォルトの名無しさん2012/02/09(木) 10:33:03.35
オマエモナー
0369デフォルトの名無しさん2012/02/09(木) 11:19:57.46
基地害の方はお引き取りくださいm(__)m
引き取るのは息でも結構ですm(__)m
0370デフォルトの名無しさん2012/02/09(木) 11:38:30.18
>>369
死ねゴミ
0371デフォルトの名無しさん2012/02/09(木) 11:42:04.07
#include <stdlib.h>

void** new_array(size_t struct_size, size_t len) {
        void** a = malloc(sizeof(*a) * len);
        int i = len;
        while(i-->0) {
                a[i] = malloc(struct_size);
        }
        return a;
}

void free_array(void** a, size_t struct_size , size_t len) {
        int i = len;
        while(i-->0) {
                free(a[i]);
        }
        free(a);
}

main(){
        struct KOZO {char c[1200];};
        struct KOZO** a;
        a = new_array(sizeof(**a), 25000);
        free_array(a, sizeof(**a), 25000);
}
0372デフォルトの名無しさん2012/02/09(木) 12:20:51.36
スクリーンバッファー配列 u_int32 A[screen_width * screen_height] があるとします。
Aは各ピクセルを 0xRRGGBB として持ちます。(u_char* c = A[123] だとして c[0]=BB, c[1]=GG, c[2]=RR)

スクリーンバッファー配列 A に対して、
任意の形の三角形塗りつぶしを行う関数 fillTry(pa, pb, pc, color)を
最も高速なアルゴリズムで書いてください。

一番高速なアルゴリズムを描けた人が優勝です。
0373デフォルトの名無しさん2012/02/09(木) 12:22:07.89
>>372=ゴミ
0374デフォルトの名無しさん2012/02/09(木) 13:32:14.39
優勝とかしたくないけど、fillTryって名前はひどいな
0375デフォルトの名無しさん2012/02/09(木) 13:47:23.31
アルゴリズムって言うか
常識的には一番上の点を探して、後は他の二点に向かって、一番下の点まで縦のドット毎に
水平ラインを塗りつぶしていくってやるだろうな。

求められる精度によるけど普通PCモニターで表示するだけなら整数の三角関数テーブルを
作るだろ。

こう言う書き方すると、ハード依存とか言われちゃうのかな?
小学校高学年レベルのCGロジックだけどな
0376デフォルトの名無しさん2012/02/09(木) 13:55:51.93
小学校で三角関数は習わんだろ。
三角関数なんていらんけどな。
DDAでググレ。数十年前に終わってる話だ。
0377デフォルトの名無しさん2012/02/09(木) 14:39:45.68
Bresenhamも知らないでよくCGロジックだなんて言えたもんだな。
0378デフォルトの名無しさん2012/02/09(木) 14:42:32.73
>>377
ゴミが何を偉そうに
0379デフォルトの名無しさん2012/02/09(木) 14:43:22.80
ハムでも食ってろ
0380デフォルトの名無しさん2012/02/09(木) 14:45:06.69
質問しようかと思いましたが
ゴミとかゆう罵声が日常的に飛び交ってて
空気がよくないので他所でききますね。
0381デフォルトの名無しさん2012/02/09(木) 14:57:01.61
セシウム飛びまくりだから空気はよくないね。
0382デフォルトの名無しさん2012/02/09(木) 15:01:05.39
セシウムさんもヤバイけどα核種が更にアウアウだよね
0383デフォルトの名無しさん2012/02/09(木) 15:04:02.42
>>378
ゴミ未満の気分はどう?ねぇどう?
0384デフォルトの名無しさん2012/02/09(木) 15:06:07.07
っていうかなんで三角形塗りつぶしの処理の話が
直線描画アルゴリズムの話にスケールダウンしてるの?
三角関数テーブルもDDAもBresenhamもやってることは同じだよ?
0385デフォルトの名無しさん2012/02/09(木) 15:07:39.19
馬鹿は黙ってろ
0386デフォルトの名無しさん2012/02/09(木) 15:10:17.35
【セシウム拳】

打撃と同時に相手の骨髄にセシウムを撃ち込む技。
打撃で572のダメージ、セシウムにより永続的に毎秒71のダメージを受ける。
0387デフォルトの名無しさん2012/02/09(木) 15:11:06.16
骨に入るのはストロンさんだろ。
0388デフォルトの名無しさん2012/02/09(木) 15:13:45.03
三角形なんか描画して楽しい?
0389デフォルトの名無しさん2012/02/09(木) 15:15:34.00
やっぱりテクスチャーとかは最低でも挿入したいよな
0390デフォルトの名無しさん2012/02/09(木) 15:33:15.83
セシウムは全身まわるよ
そして心臓にたまるよ
心筋細胞をズタボロに破壊して
心筋梗塞などを引き起こす
これはセシウム由来のガンよりも遙かに高い確率で起こるのだ
でも原因不明の突然死に分類されて放射能由来の病気を数えた統計には含まれない←重要!
まったくもっておそろしいのう
0391デフォルトの名無しさん2012/02/09(木) 15:37:48.47
じゃぁセシウム拳最強ってことだな
0392デフォルトの名無しさん2012/02/09(木) 15:38:29.01
>>389
マムコちチムポのテクスチャを挿入したい
03933572012/02/09(木) 15:40:13.62
私が書くなら

kozo=(KOZO *)malloc(NUM * sizeof(KOZO));
memset(kozo, 0, NUM * sizeof(KOZO));
free(kozo);

って書くけど。
0394デフォルトの名無しさん2012/02/09(木) 15:53:15.02
calloc()使えばmemset()いらんだろ。
0395デフォルトの名無しさん2012/02/09(木) 15:54:54.03
どうせ後でまた初期化すんだから0クリアとか無意味だろ
最初からコンストラクタ作ってそれで初期化しろよザコども
0396デフォルトの名無しさん2012/02/09(木) 16:02:06.98
どうせ後から初期化とかお前の妄想だろw
誰か一言でも後から初期化するって言ったか?w
お前痛いよwwwww
0397デフォルトの名無しさん2012/02/09(木) 16:06:07.28
calloc()も知らないやつがレスするな。
0398デフォルトの名無しさん2012/02/09(木) 16:16:11.45
カロック
0399デフォルトの名無しさん2012/02/09(木) 16:19:01.31
本当に>>50はダメな奴だな。
0400デフォルトの名無しさん2012/02/09(木) 17:19:14.94
#include <stdio.h>

int main(int argc,char **argv)
{
printf("%d\n",argc);
printf("%s\n",argv[1]);
printf("%02x %02x %02x %02x",argv[1][0],argv[1][1],argv[1][2],argv[1][3]);
return 0;
}
GCC(MinGW)でコンパイルして実行すると

C:\lp>a 〜.txt
3
?.txt
3f 2e 74 78

何故かこうなる。
何処から0x3fが来たのか?
何故か引数の数が3に成っている。
0401デフォルトの名無しさん2012/02/09(木) 17:32:16.93
単に端末がUNICODE使えないからじゃないの?
0402デフォルトの名無しさん2012/02/09(木) 17:51:08.74
うるさい
0403デフォルトの名無しさん2012/02/09(木) 17:52:40.81
文字コードも分かんないアホはC言語使うなクズ
いっしょう端末のウンコしてろ
0404デフォルトの名無しさん2012/02/09(木) 17:55:48.72
日本語でおk。
0405デフォルトの名無しさん2012/02/09(木) 18:09:23.07
>>401
unicodeを引数に出来ないだけか…。
dirをすると 〜.txt は表示されるのにな。
0406デフォルトの名無しさん2012/02/09(木) 18:35:46.62
文字コードで躓く奴にプログラミングは向いてない。
0407デフォルトの名無しさん2012/02/09(木) 18:39:32.52
俺は文字コードよりlocaleがよくわからない
なんなんだよこれ
04083442012/02/09(木) 19:34:41.95
自己解決しました。
メンバ処理のなかで、構造体ポインタを入れ替える処理があったのですが
不要になったポインタをNULLしてなかったのが原因のようです。
mallocした時点とfree()する時点では、ポインタ配列の構成が違ってました。

ありがとうございました。
0409デフォルトの名無しさん2012/02/09(木) 20:28:20.87
建国記念の日特番「天皇とは何か?」東浩紀×猪瀬直樹
http://live.nicovideo.jp/watch/lv80888861

【会場のご案内】
2012/02/11(土) 開場:19:50 開演:20:00


「建国記念の日」とは、
建国をしのび、国を愛する心を養う「国民の祝日」。

この日はかつて、
『日本書紀』が伝える初代天皇である
神武天皇即位の日とされた「紀元節」という祝日でした。
戦後、紀元節は廃止されるも、
1966(昭和41)年には国民の祝日として復活しました。

憲法では、
日本国と日本国民統合の「象徴」と規定されている「天皇」。
その地位は、主権者たる日本国民の総意に基づき、
国政に関する権能を全く有さないはずの「象徴天皇制」。

しかし、天皇をめぐる状況は、
日本人のアイデンティティーの探求とも絡み合い、
常に政治、社会、文化的な争点であり続けています。

そこで、ニコニコ生放送では、この建国記念の日に
あらためて、天皇とは何かを考えます。

出演は、東京都副知事の猪瀬直樹氏と、
批評家・作家、『思想地図β』編集長の東浩紀氏。
司会進行は週刊朝日の山口一臣氏です。
0410デフォルトの名無しさん2012/02/09(木) 20:43:36.42
面白そうと思ったけど
どうせ朝日だから見るのやめた
0411デフォルトの名無しさん2012/02/09(木) 21:05:24.80
東浩紀って左向きの思想混ざってるしな
0412デフォルトの名無しさん2012/02/09(木) 21:07:26.25
>>411
そう?もし左でも、実はアメリカさんが市ねといえばそれでも従う右よりはましじゃない?右がアメリカに逆らうことをみたことはない
0413デフォルトの名無しさん2012/02/09(木) 21:14:51.30
>>411

たんなるネットベースの無政府主義だろ
04143722012/02/09(木) 21:42:52.77
簡単なことのように豪語してる割には、誰一人として実際に動くコードをあげてないのが
不思議でしょうがないです。

じつは口では簡単そうに振る舞ってるけど、本当は簡単ではないのでしょうか?ハッタリなのでしょうか?
0415デフォルトの名無しさん2012/02/09(木) 21:45:00.23
>414
中学校のパソコンクラブの宿題は自分でやれよ
0416デフォルトの名無しさん2012/02/09(木) 21:45:06.76
>>414
ゴミの分際で何か勘違いしてない?
04173722012/02/09(木) 21:45:23.17
>>375
三角関数なんか何に使うんですか?理解できません。
あなたの頭の中のアルゴリズムに興味あります。どうやって三角関数を?どこに?
04183722012/02/09(木) 21:50:26.54
>>416
勘違いしてるのはそっちだと思います。
コードの実例を書けないあなたこそゴミでは?
0419デフォルトの名無しさん2012/02/09(木) 21:51:45.34
>>414
賞金を出さないからだな
0420デフォルトの名無しさん2012/02/09(木) 21:52:30.81
>>418
まず自分のコードを上げたほうがよい展開を迎えるパターン
04213722012/02/09(木) 21:56:10.50
>>420
ここの人たちは簡単なことでもお手本が無いと分からないんですか?
0422デフォルトの名無しさん2012/02/09(木) 22:06:30.00
>421

あなたの為だから
0423デフォルトの名無しさん2012/02/09(木) 22:15:18.81
>>421
お手本www
自分でどうぞ
0424デフォルトの名無しさん2012/02/09(木) 22:21:53.34
興味がありますという記述も一切ない。
さらには優勝とか言っちゃってる。
時間の無駄。
書いたとしてもお前は優勝を決めるだけで何も得ない。
0425デフォルトの名無しさん2012/02/09(木) 22:48:15.44
>>372
相変わらずつまらんやっちゃな。
もう少しがんばりましょうwww
0426デフォルトの名無しさん2012/02/09(木) 22:49:40.69
>>417
三角関数も理解してないのによく言えるな。
0427デフォルトの名無しさん2012/02/09(木) 23:00:15.67
>>372
スクリーンバッファー配列 A に対して、
任意の形の三角形塗りつぶしを行う関数 fillTry(pa, pb, pc, color)を
最も高速なアルゴリズム

Aの各頂点にベイラーシュワルツの定理を適用するんだよ
それからフィリィンザコルワーの公式で一気に
pa, pb, pcで作るx, y座標を埋めてしまう

あとはいけるでしょ。がんば
0428デフォルトの名無しさん2012/02/09(木) 23:42:51.52
30万くらい賞金だすならやってやるよ。
0429デフォルトの名無しさん2012/02/09(木) 23:56:32.24
ポインタ変数はメモリ上に何バイト取られているのでしょうか。
これは処理系またはOSによって違うのでしょうか。
一語分と聞いたことがあるのですが、それ
は正しいのでしょうか。
0430デフォルトの名無しさん2012/02/10(金) 00:02:01.39
何この池沼。
ここで赤の他人が「正しい」って言ったらそれ信じるわけ?
うわぁ・・・情弱。
0431デフォルトの名無しさん2012/02/10(金) 00:03:40.15
>>429
環境によってことなりますが
概ね32bitマシンでは4byte、64bitマシンでは8byte
正確な値はsizeof(void *)で調べましょう
0432デフォルトの名無しさん2012/02/10(金) 00:12:21.01
>>429
linuxだとkernelも関係してきたはず
>>431の言うとおりsizeof(void *)で調べて下さい
0433デフォルトの名無しさん2012/02/10(金) 00:21:10.04
FM7やX68000、PC9800なんかでブイブイ云わせてたヤツラが
今はもう
家族にも相手にされず2chなんかでコミュニケーションを求める
痴呆老人世代なんだなと 372の寂しい踊りプリで改めて実感したわ
0434デフォルトの名無しさん2012/02/10(金) 00:28:15.95
>>421
手本がほしいんじゃないし、そもそも手本を示せないでしょ。
あなたの精一杯のコードをあげたほうが話が進みやすいって書いたんだよ。
でもいまさら無理かもね。
0435デフォルトの名無しさん2012/02/10(金) 00:32:57.63
>>372
>>427
0436デフォルトの名無しさん2012/02/10(金) 00:37:36.40
>>433
正直、C言語より低級な世界で高速なコードがかけない人間としては、
昔の人の話は聞いてて面白い。
リアルでも。
0437デフォルトの名無しさん2012/02/10(金) 00:40:46.16
ちょっとした職人芸だよね
0438デフォルトの名無しさん2012/02/10(金) 00:43:45.96
x & (x - 1)
どう動作するでしょうか?
0439デフォルトの名無しさん2012/02/10(金) 00:47:00.88
x ^ (x - 1) | x
0440デフォルトの名無しさん2012/02/10(金) 00:56:18.50
>>429です
>>431
>>432
ありがとうございました。
私の環境では4バイトでした。
0441デフォルトの名無しさん2012/02/10(金) 01:07:14.22
>sizeof(void *)
DOSだとコンパイルオプションで変わっちゃうからなぁ。
0442デフォルトの名無しさん2012/02/10(金) 01:13:47.27
今更DOSってどスカ?
0443デフォルトの名無しさん2012/02/10(金) 01:14:55.81
お黙りDOS
0444デフォルトの名無しさん2012/02/10(金) 01:16:24.40
SM-DOS
0445デフォルトの名無しさん2012/02/10(金) 01:19:26.51
DOSといっても色々あるけど
MS-DOSしか頭にないんだろ
0446デフォルトの名無しさん2012/02/10(金) 01:22:50.45
DOSぇいっちゅうんじゃーい
0447デフォルトの名無しさん2012/02/10(金) 01:25:38.72
DOSとコンパイラは別だろ。
頭悪そうだな。
0448デフォルトの名無しさん2012/02/10(金) 01:27:30.77
んなこと言ってDOSんの?
0449はちみつ餃子 ◆8X2XSCHEME 2012/02/10(金) 01:50:20.93
>>447
とは言え、メモリ管理の構造上、 near ポインタと far ポインタを区別せざるを得ない場合があったりと、
アーキテクチャに依存する部分は少なからずあるで。
0450デフォルトの名無しさん2012/02/10(金) 01:53:01.23
例の256倍の本に書いてあったなそんなこと
0451デフォルトの名無しさん2012/02/10(金) 01:56:02.81
なんですかそのnearポインタって
初めて聞きました
0452デフォルトの名無しさん2012/02/10(金) 02:01:05.03
その例の本、
C言語を256倍使うための本
に載ってる

今となっちゃあもうどうでもいい話
知らなくて当然
簡単に言えばゲタはかせましょう……とからしい
0453デフォルトの名無しさん2012/02/10(金) 02:04:28.27
変わるからsizeofで取れって話だろ。
ほんと、頭悪そうだな。
0454デフォルトの名無しさん2012/02/10(金) 02:06:48.29
nearぽいんたーはDSセグメントレジスターが一致してないアド
0455デフォルトの名無しさん2012/02/10(金) 02:10:53.38
nearポインターはDSレジスターが一致してるモジュール間でしか参照できないよ。
farポインターはセレクター情報があるのでグローバルに参照できるけど、
64kBを超えるメモリーブロックはhugeポインターで宣言してコンパイラーに
面倒見てもらうんんだよ
0456デフォルトの名無しさん2012/02/10(金) 02:15:06.46
でも、hugeポインター宣言するとすごく処理が遅くなるから、
普通はfarポインターまでにしてメモリー割り当ては64Kで制限して
自分でデーター構造の設計を工夫するよ。
0457はちみつ餃子 ◆8X2XSCHEME 2012/02/10(金) 02:18:30.44
>>451
簡単に言うと昔はメモリがいくらかの塊の集合で扱われてたと思いねぇ。
塊の中では小さい情報量で位置を示せるけど、
別の塊を参照するにはどの塊の中のどの位置っていう情報が要るから
ちょっと大きい情報量になる。
0458デフォルトの名無しさん2012/02/10(金) 02:21:19.04
なるほど
ページとオフセット指定する的なあれか
同じページならオフセットだけみたいな
0459デフォルトの名無しさん2012/02/10(金) 02:30:16.97
hugeってふげじゃなくて、ひゅーじって読む?
ほげ野郎、どうだ?
0460デフォルトの名無しさん2012/02/10(金) 02:31:07.09
Cなんて余裕とか思ってるやつほど、Cの多彩な表現を知らない
C#でソフトかけて、わかったような気になってる子は哀れ
0461デフォルトの名無しさん2012/02/10(金) 02:35:15.87
>>451
こんなの知ってるのは年寄りだ。
http://ja.wikipedia.org/wiki/Intel_8086#.E3.83.97.E3.83.AD.E3.82.B0.E3.83.A9.E3.83.9F.E3.83.B3.E3.82.B0.E3.83.A2.E3.83.87.E3.83.AB
0462デフォルトの名無しさん2012/02/10(金) 02:42:00.73
Intel 8086 - Wikipedia
生産時期 1978年から 生産者 インテル CPU周波数 5 MHz から 10 MHz 命令セット x86 (16ビット)
アーキテクチャ8086は8080のアーキテクチャを16ビットに拡張し、乗除算などの命令を強化したCPUである。
開発にあたってIntelは、8080からの速やかな移行を最重点事項に置き、
8080のアセンブラソースコードに一切の手を加えることなく再アセンブルするだけで、8086用のバイナリを生成する事が出来た。

8086のアーキテクチャでは、プログラム内で通常表現されるアドレスの値は16ビット幅で64KBのメモリ空間である。
当時、64KBのメモリ空間は1つのプログラムにとっては十分に広大であり[3]、セグメント機構はマルチタスクのために用意された。
しかし、8086(あるいは互換品・後継品)がロングセラーになって使われ続けた結果、1つのプログラムにとってさえも64KBのメモリ空間は狭くなってしまい、
アプリケーションのプログラムが自力でセグメントレジスタを操作して64KB以上のメモリ空間にアクセスする手法が用いられるようになった。
C言語コンパイラの実装にあたっては、メモリモデルを限定してしまうか、ポインタをnear(セグメント未使用)、far(セグメント使用)の2種類にわけていた。
後者ではコンパイル時に、メモリモデルを以下のうちからどれか一つ選択するようになっていた。
コード効率やセグメントの扱いやすさから、MS-DOS環境のソフトウェアは、Smallモデルでコンパイルし、
必要に応じて最低限のセグメント操作をプログラマが指示する(適宜farまたはhugeポインタを使用し、
また動的なメモリ確保によって64KBの制限を超える)構造を取っていたものも多い。
0463デフォルトの名無しさん2012/02/10(金) 03:02:28.90
成仏しろよおっさん
0464デフォルトの名無しさん2012/02/10(金) 03:34:23.97
って言うか、Windows95がでるまでは、パソコンプログラムって16bitだったんだから
当時中学生位なら、今でもギリで20代じゃね?
0465デフォルトの名無しさん2012/02/10(金) 03:39:08.52
>>460
天才でもなければ、人間の容量なんて上限あるし、
いろんな言語を高レベルに理解するなんて到底不可能。
特に職業でプログラム書いてるなら、困らない程度にかければ問題ない。
0466デフォルトの名無しさん2012/02/10(金) 03:50:23.83
>>464
near、farポインタ以降の知識があれば話題にするはずが無い。
学習した最終地点がその辺りでそこから進歩してないと言うことだ。
0467デフォルトの名無しさん2012/02/10(金) 04:22:57.83
これがクソコテの自演である。
>>451=457
0468デフォルトの名無しさん2012/02/10(金) 10:50:40.92
本棚から「Cの解法と設計」って分厚いのを発掘した。
0469デフォルトの名無しさん2012/02/10(金) 17:55:45.30
うん
0470デフォルトの名無しさん2012/02/10(金) 17:58:18.00
【中国BBS】ドイツ車が良いと思っていたけど、日本車も良いね!

「前はドイツ車がいいと思っていたけど、日本車もいいね!」というスレッドが立てられた。スレ主のこの意見に対して様々な感想が寄せられている。

● スレ主:日月宗近
  アメリカとオーストラリアでの販売額は日本車が1番みたいだし。

● satay醤
  日本車はボディが薄い。だからぶつかるとすぐに変形する。でもその分軽くて燃費がいい。

● 老太太説相声
  ↑どんなに変形しても韓国よりはいい。

● CF歩槍狂人
  そうだね。ドイツ車はエコじゃない。

● dr007haha9
  ドイツ車はいいよ〜。日本車そのものは悪くはない。

● 強力檸檬鯊
  車全体の安全性は、フレームと全体の構造にかかっている。外側の厚みは関係ない。
  ドイツ車の外側は日本車よりも平均で1から 1.5ミリ厚いが、ユーロNCAPの衝突テストでは日本車の成績はドイツ車よりも常に上だ。
  日本車の衝撃吸収力が勝っているということだ。でも中国で生産する日本車は質の悪い材料を使い手抜きしている可能性は排除しない。

● 戈登謝徳華
  ドイツ車の方が日本車よりも良いというのは紛れもない事実。

● ◇只愛羅莉◇
  日本製のものって好きだな。使い勝手がいいし。なんでボイコットしなきゃいけないのかね。エコならそれでいいじゃないか。
http://news.searchina.ne.jp/disp.cgi?y=2012&d=0210&f=national_0210_110.shtml
0471デフォルトの名無しさん2012/02/10(金) 18:46:41.44
ここのおっさん連中は全員口だけだな。一人もコード書けないとかマジつかえねえわwww(ググって単語書き写すだけのバカしかいねえwww)
ほらよ、お手本だぞ。高速にしてみろよスーパープログラマーさんよwww

int A[300*300],i,j;
void putPix(int x,int y,int color){A[x+y*300]=color;}
void fillTri(float* pa,float* pb,float* pc,int color) {
float c=1000;
float u0[2]={(pb[0]-pa[0])/c,(pb[1]-pa[1])/c};
float u1[2]={(pb[0]-pc[0])/c,(pb[1]-pc[1])/c};
for(j=0;j<c;j++){
float u[2]={((pc[0]+u1[0]*j)-(pa[0]+u0[0]*j))/c,((pc[1]+u1[1]*j)-(pa[1]+u0[1]*j))/c};
for(i=0;i<c;i++){
putPix((pa[0]+u0[0]*j)+u[0]*i,(pa[1]+u0[1]*j)+u[1]*i,color);
}
}
}
0472デフォルトの名無しさん2012/02/10(金) 19:03:21.75
このゴミ何なの?
0473デフォルトの名無しさん2012/02/10(金) 19:06:07.83
前スレ500近辺でも暴れてたヤツだな
どうしても書き込みしたいなら以後はコテ付けるようにしような
04744712012/02/10(金) 19:11:06.18
ちなみにこれ5分で書いたわw
0475デフォルトの名無しさん2012/02/10(金) 19:14:50.46
構想5年 が抜けてるぞ
04764712012/02/10(金) 19:20:25.15
三角関数を使ってどうたら言ってたやつは、どんなアルゴリズムで描画するつもりだったのか気になるわ
だれか解るやついるか?
おまえら代わりに解説しろよ
0477 ◆QZaw55cn4c 2012/02/10(金) 19:20:38.38
>>455
huge ポインタは使いたくないなあ。バグありとのうわさもちらほら。
私なら自力で far ポインタを使ってマネージする。

>>456
そうそう。
0478 ◆QZaw55cn4c 2012/02/10(金) 19:24:32.47
>>462
>乗除算などの命令を強化
正直使えない。

>8080のアセンブラソースコードに一切の手を加えることなく
にわかには信じがたいのですが。

>適宜farまたはhugeポインタを使用し、また動的なメモリ確保によって64KBの制限を超える
far を使おうが何をしようが、64KB の壁は

超 え ら れ な い
0479デフォルトの名無しさん2012/02/10(金) 19:38:05.82
64KB の壁なんていまはねえよ。
どんなPCつかってるんだ。
0480デフォルトの名無しさん2012/02/10(金) 19:52:07.31
弥生時代のPCだろ
0481デフォルトの名無しさん2012/02/10(金) 19:55:57.10
>>471
あれ、fillTryじゃなくなってるね
0482 ◆QZaw55cn4c 2012/02/10(金) 20:00:31.08
>>479
V30/i8087 on NEC PC-9801RA
0483デフォルトの名無しさん2012/02/10(金) 20:26:56.54
マジレス
0484デフォルトの名無しさん2012/02/10(金) 20:33:07.17
>>476
二点を結ぶ直線の傾きを求めるときに直線の縦横比に応じた
正数テーブルを予め作っておいて、任意の点が与えられた時に
インデックスから引っ張ってくるだけにしたいんじゃね?
これがタンジェントテーブルになるだろ。
具体的には0:255-255:255の範囲でタンジェントを計算しておけば
index = w << 8 / h
傾き= tan[index]
だけで済むだろ

三角形を一つだけ描画するだけならどうでも良いけどな
一万個描画するなら471とかのコードは顧客が発狂するだろ
0485デフォルトの名無しさん2012/02/10(金) 21:06:42.29
>>478
越えられるだろ。バカ。宿題スレから出てくんな。
0486 ◆QZaw55cn4c 2012/02/10(金) 21:18:51.20
>>485
ほう?
i8086/MS-DOS 上と限定した上で(>>462を前提としますね)、64KB の壁をどうやったら超えられるのでしょうか?
huge ポインタ?バグつきでもつかうのですか?

せっかく脳に脳細胞が詰まっているのならば少しは使ったほうがいいですよ。
0487デフォルトの名無しさん2012/02/10(金) 21:19:43.07
C言語の授業で通し番号って言葉が出てきたけどどういう意味ですか?
配列の添え字的な事を言う用語ですか?
04884712012/02/10(金) 21:22:11.31
>>484
は?
だから三角関数をどう活用するつもりなのかを聞いてんだろうが!
バカかよマジでこいつら…orz会話が成立しねえ。疲れるわ

ここって、マジでアホしか居ないスレなのか?IQ低くね?
0489デフォルトの名無しさん2012/02/10(金) 21:23:16.99
>>487
その教師に聞くのが一番早いだろ
おまえ何しに授業に出てんだ? アホか?
0490デフォルトの名無しさん2012/02/10(金) 21:25:37.87
>>489
聞いてもよくわからなくて...
0491デフォルトの名無しさん2012/02/10(金) 21:28:42.39
>>490
分かるまで聞け
教員室にまで押しかけて問答でもしろ
それを明日とか月曜やれ
0492 ◆QZaw55cn4c 2012/02/10(金) 21:35:46.93
>>490
教員側も、実は質問されるのはうれしいと思いますよ。レスポンスがあるということは少なくとも自分の話が聞き手に届いていることを確認できますからね。
「先生の今おっしゃったことは、これこれこういうことでしょうか?」
と自分の解釈を交えながら再確認を繰り返すことがコツだと思います。

わからないことをわからないというのは、全然失礼じゃないですよ。
0493デフォルトの名無しさん2012/02/10(金) 21:37:54.23
>>490
教えるのが仕事の人間に聞いてわからないものが
ここで赤の他人に聞けばわかるとでも?
頭悪すぎじゃね?
まぁそんな池沼レヴェルの頭だからわからないんだろうけど
0494デフォルトの名無しさん2012/02/10(金) 21:41:20.46
だから>>490みたいなゴキブリ並の知能しかない香具師はスルーしろって。
0495デフォルトの名無しさん2012/02/10(金) 21:45:55.62
>>486
リアルモードはセグメントレジスタの値は任意に設定できる。
16bit+16bitを別レジスタで管理しているに過ぎない。

楽勝で超えたね。
0496 ◆QZaw55cn4c 2012/02/10(金) 21:46:07.42
>>494
お前さんのほうがゴキブリに近いのでは?
なぜ意味もなく叩く?
うまく質問がすすまないのは単なるスキルの問題に過ぎないのだから、スキルの一片でもみせてやったらええんとちゃうか?
それができないのなら、それはお前さんのほうがゴキブリ。

死ね
0497 ◆QZaw55cn4c 2012/02/10(金) 21:48:31.49
>>495
それは 64KB の壁とはいわない。

char *p;
p += CONST;
にて、セグメントレジスタを自動的にバグなしに変えるコードを生成するコンパイラが存在するのか?
0498デフォルトの名無しさん2012/02/10(金) 21:52:21.35
死ねは自殺教唆で前科になる。
一家から犯罪者が出たら家族はどういう気持ちだろうな。
0499デフォルトの名無しさん2012/02/10(金) 21:53:05.84
>>490みたいな馬鹿を排除しないから荒れるんだろう
0500デフォルトの名無しさん2012/02/10(金) 21:54:02.79
でも、死なないんでしょう?
0501 ◆QZaw55cn4c 2012/02/10(金) 21:54:42.11
>>498
ならない。「死ね」と書いて犯罪になるというのなら判例を示せ。
0502デフォルトの名無しさん2012/02/10(金) 21:55:14.24
排除も何も>>490はわざとだろ。
荒らしたくて荒らしてるんだから
どうしようもない。
0503デフォルトの名無しさん2012/02/10(金) 21:57:47.12
嫌われ者はどこにいても嫌われ者なんだな
0504デフォルトの名無しさん2012/02/10(金) 21:58:10.77
イヤホン当にわからないんです。
0505デフォルトの名無しさん2012/02/10(金) 21:59:04.18
>>498
言われた本人が自殺しなければならないよ
自殺してなくても適用されるのは脅迫罪
脅迫罪での逮捕は報道されてないだけで未成年者でも結構されてる
ただし被害者自身が被害届を出す必要がある
0506デフォルトの名無しさん2012/02/10(金) 22:00:18.94
親告罪か。なら被害届が出れば>>496は終わりってことかw
0507デフォルトの名無しさん2012/02/10(金) 22:05:32.73
ネットカキコの「死ね」で本当に脅迫罪になるんだなwww
リスク高すぎワラタwwww
0508 ◆QZaw55cn4c 2012/02/10(金) 22:08:00.12
>>506
>>496 は脅迫ではない。
「殺すぞ」と書けば脅迫だが「死ね」は話者の願望を表明しているだけで話者の行為を予告しているわけではないから「殺すぞ」とは違うと解釈する。
0509デフォルトの名無しさん2012/02/10(金) 22:11:27.28
そもそも対象の個人を特定できないから脅迫事態が成り立たない
便所の壁に死ねと叫んでも何の罪もないのと同じ
05104712012/02/10(金) 22:13:31.27
おまえら三角形の塗りつぶしアルゴリズムすら書けないくせに
口から出任せの法律談義だと饒舌だなwww
0511デフォルトの名無しさん2012/02/10(金) 22:14:28.12
「死ねばいいのに」はセーフ
「死ね」はアウト
逮捕者が実際いるしな

こういう掲示板では
アンカうってなかったらセーフ
アンカうってたらアウト
0512デフォルトの名無しさん2012/02/10(金) 22:17:22.84
「死ねばいいのに」はセーフじゃないぞ。
可能性は低いけど傷害罪になることがある。
0513デフォルトの名無しさん2012/02/10(金) 22:19:53.13
>>511
死ね
0514 ◆QZaw55cn4c 2012/02/10(金) 22:19:58.32
>>511
>「死ね」はアウト
>逮捕者が実際いるしな

ほう?kwsk。
0515デフォルトの名無しさん2012/02/10(金) 22:20:41.72
ごちゃごちゃうるせえよ
裁判所でやれ
0516デフォルトの名無しさん2012/02/10(金) 22:22:10.26
刑法を理解してない奴が混ざってるな。
まぁそいつが逮捕されても俺には関係ないからいいけどw
0517デフォルトの名無しさん2012/02/10(金) 22:26:46.14
>>488
タンジェントって三角関数じゃないの?
0518デフォルトの名無しさん2012/02/10(金) 22:27:23.76
■「死ね」と言った場合
 ◇言われた人が自殺した場合 → 自殺教唆(確率高)
 ◇言われた人が被害届を出した場合 → 脅迫
 ◇言われた人が何もしない場合 → 傷害(確率低)
0519デフォルトの名無しさん2012/02/10(金) 22:29:02.96
めんどくせえ展開だな
0520デフォルトの名無しさん2012/02/10(金) 22:33:16.04
>>518
でも実際逮捕されてないよね。
0521デフォルトの名無しさん2012/02/10(金) 22:35:03.90
少しはプログラムの話でもしろよ
0522デフォルトの名無しさん2012/02/10(金) 22:39:53.26
逮捕されてるぞ。
ネットは書き込みが証拠になるから立件は簡単だし。
0523 ◆QZaw55cn4c 2012/02/10(金) 22:42:50.35
>>522
されてるぞ詐欺ですね。わかります。
0524デフォルトの名無しさん2012/02/10(金) 22:43:25.00
>>497
バカめ。コンパイラがサポートしていなけりゃ自分でマネージするだけの話だ。
1Mのメモリ空間をアドレス可能なポインタが使えりゃ超えたと言っていいんだよ。
わかったかカス。宿題スレから出てくんな。
0525デフォルトの名無しさん2012/02/10(金) 22:44:38.60
誰ひとりスレタイに沿った話してなくてワロタ
0526デフォルトの名無しさん2012/02/10(金) 22:46:03.38
それもこれも全部>>50が悪い。
0527デフォルトの名無しさん2012/02/10(金) 22:48:13.11
試してみればいいんじゃね?w
傷害も本当に成立するなら親告罪じゃないわけだしw
0528 ◆QZaw55cn4c 2012/02/10(金) 22:50:09.30
>>524
そんな簡単な話なら 「64KB の壁」 が Windows3.1 プロテクトモードの時代になっても恐れおののかれる事態にはならなかったと思うのですけど。

>自分でマネージするだけの話だ。
それは>>477で述べられずみ。そして自分でマネージするのがしんどいから「壁」呼ばわりされて苦労の種だったとおもうんですけど。
0529デフォルトの名無しさん2012/02/10(金) 22:50:21.81
>>509
個人を特定できないから成立しないってのは名誉毀損
0530デフォルトの名無しさん2012/02/10(金) 22:54:34.82
警察はすぐに動かないよ
半年とか経ってから急に来る
0531デフォルトの名無しさん2012/02/10(金) 22:58:48.56
>>471
たった1つの三角形を描くのに100万回もループするありえないほど遅いプログラム乙。
0532デフォルトの名無しさん2012/02/10(金) 23:06:40.35
>>528
面倒だから敬遠された。でも必要ならば越えられる壁だった。
↓ほれ、訂正して、謝罪して、巣に帰れ。そして二度と出てくんな。クズ。

> far を使おうが何をしようが、64KB の壁は
>
> 超 え ら れ な い
0533デフォルトの名無しさん2012/02/10(金) 23:12:27.05
別に大した壁じゃないよね。
大したものにしとかないとなんか困るんだろうね、コテに取っては。
0534デフォルトの名無しさん2012/02/10(金) 23:13:47.80
で、お前らなんか楽しいんだっけ?
0535 ◆QZaw55cn4c 2012/02/10(金) 23:14:49.80
>>532
だ、か、ら、
超えられないから「壁」なんですってば。
DS!=SS 問題をご存知ない?DLL 書くときに苦労しませんでしたか?
0536デフォルトの名無しさん2012/02/10(金) 23:15:07.11
別に。
0537デフォルトの名無しさん2012/02/10(金) 23:15:43.08
What's your purpose?
0538デフォルトの名無しさん2012/02/10(金) 23:16:59.96
バストダンジョンがどうのこうの
0539デフォルトの名無しさん2012/02/10(金) 23:20:43.66
ぶっちゃけ◆QZaw55cn4cさんは場違いな小池里奈スレでプログラミング
教えてもらったこともあったから感謝している。

良い人であってほしい。
0540デフォルトの名無しさん2012/02/10(金) 23:23:18.59
Unfortunately, a perfect man doesn't exist...
0541デフォルトの名無しさん2012/02/10(金) 23:23:38.41
アンカーの先のレスが人が書き込んだものかBOTが書き込んだものか特定できないから逮捕は無理
BOTに向けて書いたものだといえば終わりだよ
BOTではなく自分が書いたものだと証明できないといけない
0542デフォルトの名無しさん2012/02/10(金) 23:25:15.55
一つ言っていいか?
そもそも、そんなことを書かなきゃいいだけ

以上
0543 ◆QZaw55cn4c 2012/02/10(金) 23:26:42.37
>>539
お久しぶり :-)
いつでしたっけ。あとそのとき私はなんていってましたっけ。すっかり忘れてしまった。
0544デフォルトの名無しさん2012/02/10(金) 23:27:24.48
かなり痴呆も進んでいる。
0545デフォルトの名無しさん2012/02/10(金) 23:29:15.07
javaの用語むずすぎワロタwwww


スレッド=並列処理だったら

マルチスレッド=並列並列処理なんだろ?

ややこしいwwwwwwwwww
0546デフォルトの名無しさん2012/02/10(金) 23:30:12.57
スレッドは糸だよ
マルチスレッドは糸がたくさんある状態
※糸:処理の流れ
0547デフォルトの名無しさん2012/02/10(金) 23:31:29.53
>>545
スレッドは2ちゃんの用語だろ。
マルチスレッドはスレッドがいっぱいあるって事だよ。
0548デフォルトの名無しさん2012/02/10(金) 23:33:30.61
Javaも2ちゃんも関係ないし。
0549デフォルトの名無しさん2012/02/10(金) 23:35:55.15
プログラミングやるにつれて構造的なものを把握する感性って多様なんだなと
思ったわ。

構造何て把握するとき、ブレインストーミングみたいに単にキーワードかいて
囲って線で繋げていけばいいだけだと思ったが、そんな単純じゃないんだよな。

0550デフォルトの名無しさん2012/02/10(金) 23:36:01.72
マルチン・ルターはルターがたくさんってこと
0551デフォルトの名無しさん2012/02/10(金) 23:38:26.58
ンはあんまりないの?
0552デフォルトの名無しさん2012/02/10(金) 23:38:38.04
スレッドやオブジェクト指向だって構造的な考えだよな。

Cには機能が少なすぎて構造もくそもない。
0553デフォルトの名無しさん2012/02/10(金) 23:40:18.83
>>541
K察は当然のごとく両方調べるよ
0554デフォルトの名無しさん2012/02/10(金) 23:41:32.88
>>552
あらら。ここにもCを甘く見てるお方が。。
なぜくるんだろうねぇ。。

structの意味わかってますか?
0555デフォルトの名無しさん2012/02/10(金) 23:41:40.57
構造もクソも機械語以上のことはできねーよ
高水準言語のおかげでそういうモンがあると錯覚してるだけだ
0556デフォルトの名無しさん2012/02/10(金) 23:42:02.15
高級な言語はより完成品に近いキットで、
Cのような低級言語はプリミティブな部品しかないレゴみたいなもんだよ。
優れたレゴビルダーはプリミティブな部品から大規模な構造物を作れるんだよ。
うひょー!
0557デフォルトの名無しさん2012/02/10(金) 23:42:18.05
コンピュータの時計と市販で売ってる高級時計じゃどっちが
時間精密に測れてるの?
0558デフォルトの名無しさん2012/02/10(金) 23:43:23.82
>>557
PCに入ってる時計は精度かなり悪い。
だから定期的にネットで時間あわせとか必要。
0559デフォルトの名無しさん2012/02/10(金) 23:43:27.12
またこれを貼らないかんのかい。。
http://en.wikipedia.org/wiki/Low-level_programming_language
0560デフォルトの名無しさん2012/02/10(金) 23:43:28.46
>>539
他人に死ねという奴が良い奴なわけないだろ。
仲間内ならまだしも他人だよ。
それが良い奴とか頭沸いてんの?
0561デフォルトの名無しさん2012/02/10(金) 23:44:43.13
>>560
ヒント:類は友を呼ぶ
0562デフォルトの名無しさん2012/02/10(金) 23:45:38.28
>>557
ネットにつながるならNTPで合わせれば原子時計レベルw
コストダウンがひどいからつながないと1日1分狂うこともある。
0563デフォルトの名無しさん2012/02/10(金) 23:46:51.74
だから犯罪になるってんなら警察に言えば済む話だろ
0564デフォルトの名無しさん2012/02/10(金) 23:47:22.33
>>557
最近なら普通の時計は電波時計だね。
電波時計と言っても常に時間をあわせてるわけじゃないから精度は数秒だけどね。
0565デフォルトの名無しさん2012/02/10(金) 23:48:48.52
>>563
誰に言ってるか知らんが俺は言ってみる予定
明日でいいだろ
普通に窓口で聞けばいいんだよね?
0566デフォルトの名無しさん2012/02/10(金) 23:49:11.52
プログラミングによってコンピュータの時計の精度を限りなく小さくすることは
できないのかね?
0567デフォルトの名無しさん2012/02/10(金) 23:50:50.61
クロック精度以上によくできるわけがなかろう、。。
0568デフォルトの名無しさん2012/02/10(金) 23:50:56.54
>>565
ここでいいよ。
ttps://www.keishicho.metro.tokyo.jp/anket/other.htm
0569デフォルトの名無しさん2012/02/10(金) 23:53:00.16
thx
0570デフォルトの名無しさん2012/02/10(金) 23:53:56.95
一番関数の種類が多い言語ってC++なのかな?
0571デフォルトの名無しさん2012/02/10(金) 23:54:19.95
>>531
貶すなら、お前がいい例を示せば、自己満足が達成でき、俺らは勉強できるのにな。
0572デフォルトの名無しさん2012/02/10(金) 23:54:36.22
>>567
数十万年に1秒以下ですが。

これが電波時計の謳い文句である。
0573デフォルトの名無しさん2012/02/10(金) 23:55:17.78
>>572
はい?
>>567は>>566に対してだよ?
0574デフォルトの名無しさん2012/02/10(金) 23:55:21.26
>>568
サンクス
0575デフォルトの名無しさん2012/02/10(金) 23:55:26.27
>>570
標準搭載だけならJavaの方がかなり多い気がするけど。
0xでどれくらい増えたんだろ?
0576 ◆QZaw55cn4c 2012/02/10(金) 23:55:31.74
>>539
http://yuzuru.2ch.net/test/read.cgi/idol/1298418299/
でしたね。ちょっと出っ歯なのがいまいちでしたが‥‥。
私はあいかわらずでたらめ(のつもりではないんですが)コード書いて楽しんでますが、何か面白いネタありませんか?モリタポスレも飽きてしまったし。
0577デフォルトの名無しさん2012/02/10(金) 23:56:24.68
>>573
だったらアンカ打てよ。
そうだとしても同じだけどな。
0578デフォルトの名無しさん2012/02/10(金) 23:57:24.90
>>577
>>572は何が言いたい?w
0579デフォルトの名無しさん2012/02/10(金) 23:58:09.02
通報して意味あるの?
0580デフォルトの名無しさん2012/02/10(金) 23:58:21.04
NTP使えばいいだけ。
使えば100万年に1秒以下。
0581デフォルトの名無しさん2012/02/10(金) 23:59:19.68
>>580
今、スタンドアロンでの話じゃねぇのかよw
0582デフォルトの名無しさん2012/02/11(土) 00:00:22.17
>>579
傷害なら成立する場合があるし、
もし言われた本人が通報したらアウト。
さらにPC押収で調べられて余計なものが出てきたらそれも含めてやられる。
0583デフォルトの名無しさん2012/02/11(土) 00:01:33.19
>>581
スタンドアロンなら話すら意味がない。
0584デフォルトの名無しさん2012/02/11(土) 00:01:53.13
100万年に1秒以下ってのはどうやって計算したんだろ。

1:100万*365*24*3600=1:21億か。

億精度の測定器が存在する事になる。
0585デフォルトの名無しさん2012/02/11(土) 00:02:08.58
>>579
傷害なら成立する場合があるし、
もし言われた本人が通報したらアウト。
さらにPC押収で調べられて余計なものが出てきたらそれも含めてやられる。
0586デフォルトの名無しさん2012/02/11(土) 00:03:04.44
>>582
>>585
大切なことなので?
0587デフォルトの名無しさん2012/02/11(土) 00:03:08.06
プログラミングで精度を上げられるかって話なのにアホだろ。
0588デフォルトの名無しさん2012/02/11(土) 00:03:12.76
>>584
http://ja.wikipedia.org/wiki/%E5%8E%9F%E5%AD%90%E6%99%82%E8%A8%88
0589デフォルトの名無しさん2012/02/11(土) 00:03:35.28
>>587
安価かきやがれ。。
0590デフォルトの名無しさん2012/02/11(土) 00:03:46.99
>>584
1000万年に1秒以下 の精度の時計があんだよ
言わせんなよ恥ずかしい
0591デフォルトの名無しさん2012/02/11(土) 00:04:40.92
スタンドアロンでできるわけないだろ。
何か別にセンサになるものでもあれば少しはどうにかなるかも知れんがな。
0592デフォルトの名無しさん2012/02/11(土) 00:05:26.42
スタンドアロンでできないから、>>567になるんだろう。
0593デフォルトの名無しさん2012/02/11(土) 00:06:26.76
>>583
0594デフォルトの名無しさん2012/02/11(土) 00:06:32.07
まあ、NTP使って、原子時計精度にできたとしても、
原子時計のクロック精度以上にはできない

結局同じことだが
0595デフォルトの名無しさん2012/02/11(土) 00:07:05.85
原 子 時 計 の ク ロ ッ ク 精 度www
0596デフォルトの名無しさん2012/02/11(土) 00:07:15.00
>>589
俺は傍観してただけでその話題には参加してないよ。
横から見てるだけでも、>>566に対する>>567なのはわかるつーの。
0597デフォルトの名無しさん2012/02/11(土) 00:08:02.42
>横から見てるだけでも、>>566に対する>>567なのはわかるつーの。
だよな。。
0598デフォルトの名無しさん2012/02/11(土) 00:08:33.74
まじかw
ちなみに、どんな可能性を考えたのか教えてくれw
0599デフォルトの名無しさん2012/02/11(土) 00:09:08.47
開発して3000万年も足ってないのに何で精度がすげーって分かるんだろ
0600デフォルトの名無しさん2012/02/11(土) 00:09:44.77
>>588
0601デフォルトの名無しさん2012/02/11(土) 00:11:34.03
>>595
何が面白いんだろう。
0602デフォルトの名無しさん2012/02/11(土) 00:11:41.25
久々にのぞいたけど、なんかこのスレおもしろいな。
だれもスレタイに沿ってないのは置いとくとしてw
0603デフォルトの名無しさん2012/02/11(土) 00:13:06.27
ソフト屋はどうしても仮想的な世界でものをかんがえちゃうからなぁ。。
0604デフォルトの名無しさん2012/02/11(土) 00:13:29.62
と、ヘボが申しております。
0605デフォルトの名無しさん2012/02/11(土) 00:13:51.29
>>604
またでたな、ヘボいうヘボ。。
0606デフォルトの名無しさん2012/02/11(土) 00:14:01.49
時間なんて会議で適当に一秒ずらしたりしてるのに、精度なんて意味ねえよ
0607デフォルトの名無しさん2012/02/11(土) 00:14:24.37
>>606
用途によるわw
0608デフォルトの名無しさん2012/02/11(土) 00:14:32.51
他言語スレと比べて活気がある
0609デフォルトの名無しさん2012/02/11(土) 00:15:43.34
めっちゃ伸びてるなw
で、ゴキブリは>>496だったとw
0610デフォルトの名無しさん2012/02/11(土) 00:16:06.43
>>606
時間がすべての基本なのにか。
0611デフォルトの名無しさん2012/02/11(土) 00:17:25.27
さらにマジレスすると、NTP使って定期的に時刻合わせしても、
時刻合わせから時刻合わせの間は、自前のクロック精度で刻んでるから
0612デフォルトの名無しさん2012/02/11(土) 00:17:31.77
1日80スレ、20分に1回書き込みがある。
0613デフォルトの名無しさん2012/02/11(土) 00:21:00.25
>>609
違う。
>>496はゴキブリ未満でガチゴミレベル。
つか書き込み見れば分かるだろ。
0614デフォルトの名無しさん2012/02/11(土) 00:23:09.81
>>610
時間の基準は光ですよ?
0615デフォルトの名無しさん2012/02/11(土) 00:24:20.09
相対論語りだす気か?
0616デフォルトの名無しさん2012/02/11(土) 00:24:40.05
うるせーハゲ。
0617デフォルトの名無しさん2012/02/11(土) 00:24:58.22
わるいがハゲじゃない
0618デフォルトの名無しさん2012/02/11(土) 00:26:02.84
頭頂部は見えないからな。
0619デフォルトの名無しさん2012/02/11(土) 00:26:27.19
鏡を使え。。
0620デフォルトの名無しさん2012/02/11(土) 00:27:29.64
実世界では原子より小さい誤差は存在しないのに
数学の世界では原子の何無量大数倍小さい精度の誤差も存在するってのが面白い
0621デフォルトの名無しさん2012/02/11(土) 00:29:09.02
>>620
数学は人間が作ったものだからな

それから、物理的な最小単位はプランク単位系で表され、
原子サイズレベルよりずっと小さい

http://ja.wikipedia.org/wiki/%E3%83%97%E3%83%A9%E3%83%B3%E3%82%AF%E5%8D%98%E4%BD%8D%E7%B3%BB
0622デフォルトの名無しさん2012/02/11(土) 00:29:52.97
>>609
伸びてるのは>>494が原因、スルーしろと言いながらゴキブリと煽ってるのが問題

もう出ちゃってるから書くけど、
わざわざ言わなくても>>490がゴキブリなのは誰が見ても分かるわけで、
それをわざわざ書いて煽ったのが悪い
0623デフォルトの名無しさん2012/02/11(土) 00:31:55.17
煽るも何も>>490はスルー推奨だろ
0624デフォルトの名無しさん2012/02/11(土) 00:36:05.17
ゴキブリ=QZ
0625デフォルトの名無しさん2012/02/11(土) 00:36:30.09
まぁいくらたたいても死なないのはそうだなw
0626デフォルトの名無しさん2012/02/11(土) 00:38:36.23
>>623
そこは問題じゃない。
0627デフォルトの名無しさん2012/02/11(土) 00:42:27.65
スルーつっても相手する馬鹿が一人でいると住み着くことがあるからな
◆QZaw55cn4cみたいに自分の言いたいことだけ言う池沼がこのスレにもう1匹欲しい?
欲しいならいいけど、そうでないならゴミ(>>490)は早急に追い出すべき
0628デフォルトの名無しさん2012/02/11(土) 00:43:19.75
そんなつまらん話は聞きたくない。
0629デフォルトの名無しさん2012/02/11(土) 00:49:40.65
多倍長演算でπを計算するソースを書いたときは楽しかったなぁ
0630デフォルトの名無しさん2012/02/11(土) 00:51:57.44
>>527
だから追い出すのはスルーなんだって。
0631デフォルトの名無しさん2012/02/11(土) 00:53:34.35
>>606
それは時間じゃなくて時刻な。
0632デフォルトの名無しさん2012/02/11(土) 00:55:11.18
ゴミとか以前に不思議で仕方がないのが
何で理解できるまで学校の教員に質問しないのかってこと
どこの学校しか知らんけどC言語を使える教員が1人しかいないわけでもなかろうし

不思議で仕方がない
0633デフォルトの名無しさん2012/02/11(土) 00:56:08.58
ヒント:コミュ力
0634デフォルトの名無しさん2012/02/11(土) 00:56:23.11
そんなつまらん話は聞きたくない。
0635デフォルトの名無しさん2012/02/11(土) 00:56:47.75
連投乙
つまらんならこなくていいよ
0636デフォルトの名無しさん2012/02/11(土) 00:57:33.24
お前がな。
0637デフォルトの名無しさん2012/02/11(土) 00:57:46.95
はぁ?
0638デフォルトの名無しさん2012/02/11(土) 00:58:14.34
>>632
何でか知りたい?
>>490がゴキブリだからだよw
その証拠にすぐゴキブリが擁護に入ったろww
まさに類友wwww
0639デフォルトの名無しさん2012/02/11(土) 00:58:49.77
ゴキブリそんなに好きなの?
0640デフォルトの名無しさん2012/02/11(土) 01:00:21.51
いや・・・ゴキブリって書いてあったから・・・
0641デフォルトの名無しさん2012/02/11(土) 01:01:57.07
何で>>490である俺が一番叩かれてるのww
ネットストーカー怖いっすw
0642デフォルトの名無しさん2012/02/11(土) 01:02:11.15
>>632
つーか友達にきけば済むと思う。
難しい話でも何人かきけば一人くらい理解してる奴はいる。
0643デフォルトの名無しさん2012/02/11(土) 01:03:01.96
>>642
おいおい、友達って
禁句だろここでは。。
0644デフォルトの名無しさん2012/02/11(土) 01:04:02.19
>>642
馬鹿の友達は馬鹿だから無理
0645デフォルトの名無しさん2012/02/11(土) 01:04:51.46
大学に親しい人おらんしな
0646デフォルトの名無しさん2012/02/11(土) 01:06:39.84
>632
実は学校の先生もよく知らなかったりするんじゃね。

0647デフォルトの名無しさん2012/02/11(土) 01:06:42.11
お前ら、プログラミング以外だと生き生きしてるなw
0648デフォルトの名無しさん2012/02/11(土) 01:07:21.70
>>629以降、プログラミングの話が出てないんだが。。
0649デフォルトの名無しさん2012/02/11(土) 01:07:41.26
>>647
絶対にプログラミングとか関係なくてストーカーがいる
0650デフォルトの名無しさん2012/02/11(土) 01:08:02.60
変な生命体が常駐しとる
0651デフォルトの名無しさん2012/02/11(土) 01:08:51.63
プログラミングの話出したらヘボにヘボって言われるからじゃね?
0652デフォルトの名無しさん2012/02/11(土) 01:09:27.57
>>651
あぁ、なるほど
0653デフォルトの名無しさん2012/02/11(土) 01:10:08.10
>>535
バカめ。バカには超えられないだけで。普通は誰でも超えてる。

> DS!=SS 問題をご存知ない?DLL 書くときに苦労しませんでしたか?
全然苦労しない。
0654デフォルトの名無しさん2012/02/11(土) 01:10:19.15
俺の場合は大学だけど、授業終わってすぐ、まず友達か友達のいない講義では周りの人にきいて、
誰も分からなかったら教授のところに聞きに行くよ。
「すいませーん、ちょっと何言ってるか意味分かんなかったんッスけどー、聞いてもいいッスかね?」
ってな感じで。
0655デフォルトの名無しさん2012/02/11(土) 01:11:19.31
ちゃれーくそやろーには教えたくない
0656デフォルトの名無しさん2012/02/11(土) 01:13:30.41
>>645

>>654
>友達のいない講義では周りの人にきいて
0657デフォルトの名無しさん2012/02/11(土) 01:14:21.43
押忍!お忙しいところ申し訳ございません!
自分、少々質問致したい事があるのですが、お時間頂けないでしょうか!

みたいに聞け。
0658デフォルトの名無しさん2012/02/11(土) 01:14:30.73
超えられない壁などない
なぜなら無限の高さの壁はないからである
0659デフォルトの名無しさん2012/02/11(土) 01:15:23.01
>>657
>押忍!
>自分、
をカットすれば、まあ及第点
0660デフォルトの名無しさん2012/02/11(土) 01:15:30.96
バカの壁は越えられない。
0661デフォルトの名無しさん2012/02/11(土) 01:17:53.09
「何をしようが64kbの壁は超えられない」って何?
mallocで2MB確保してますが何か?とかそういう話ではなくて?
0662デフォルトの名無しさん2012/02/11(土) 01:19:59.94
昔話だよ。
意味はない。
0663デフォルトの名無しさん2012/02/11(土) 01:20:28.30
ふと本棚みたらマイクロソフトマクロアッセンブラーv6.0 PC-9800シリーズの
プログラマーズガイドとリファレンスが見つかったんだけど
これってヤフオク出したら高く売れるかな?
ここの奴らなら欲しい奴いるだろ?

最近のC++ライブラリィーのガイドとかに比べれば遙かに簡単に(短時間で)読破できるぞ
0664デフォルトの名無しさん2012/02/11(土) 01:20:33.22
今ならあれだ、どうやって4GB以上のメモリを確保しますかって話だ。
0665デフォルトの名無しさん2012/02/11(土) 01:21:10.51
昔話でここまで伸びた
0666デフォルトの名無しさん2012/02/11(土) 01:21:23.37
free(buf);しないメモリリーカーがいるスレはここですか?
0667デフォルトの名無しさん2012/02/11(土) 01:21:44.82
>>666
3点。
0668デフォルトの名無しさん2012/02/11(土) 01:22:07.19
>>663
ブックオフで10円。
0669デフォルトの名無しさん2012/02/11(土) 01:22:55.66
そう言えば64bitプログラムってどんなメモリーモデルになるの?
Win64はなんかまたセグメント復活みたいなのを聞いた気がするけど
0670デフォルトの名無しさん2012/02/11(土) 01:24:07.40
俺の本棚にはM68000のユーザーズマニュアルがささってる。
0671デフォルトの名無しさん2012/02/11(土) 01:25:14.37
>>667
あえて33分の1しちゃうなんてドSなんだから(はぁと
0672デフォルトの名無しさん2012/02/11(土) 01:25:26.53
>>670
薄めの青枠でテカったやつだっけ?大学の講義で使ったな。
0673デフォルトの名無しさん2012/02/11(土) 01:28:10.66
calloc使ってるやつはゆとり
0674デフォルトの名無しさん2012/02/11(土) 01:28:43.25
昔は恐竜とかいてヤバかったよね、どうやって身を守る? とかそういう話?
0675デフォルトの名無しさん2012/02/11(土) 01:28:54.43
ゆとりはCなんて使わんだろ。
0676デフォルトの名無しさん2012/02/11(土) 01:29:35.60
>>674
>>664
0677デフォルトの名無しさん2012/02/11(土) 01:29:43.28
ゆとり言語ってなに?
0678デフォルトの名無しさん2012/02/11(土) 01:32:05.91
Javaだろ。
0679デフォルトの名無しさん2012/02/11(土) 01:32:35.52
Javaが入るならC#も入るな
0680デフォルトの名無しさん2012/02/11(土) 01:33:38.71
>>672
そうそう。CQ出版のやつ。
俺の脳内アーキテクチャはいまだにこれ。
0681デフォルトの名無しさん2012/02/11(土) 01:37:58.53
もう昔すぎて覚えてないわw
68020って別だっけ?アドレッシングモードが多くてCそのままアセンブラ書ける
やんけって感動したのは覚えてるw
0682デフォルトの名無しさん2012/02/11(土) 01:38:47.60
ん?インラインアセンブラのこと言ってる?
0683デフォルトの名無しさん2012/02/11(土) 01:39:40.50
いや、アセンブラ。
Cで書くくらい簡単にかけた。
0684デフォルトの名無しさん2012/02/11(土) 01:41:51.31
汎用のレジスタが沢山あるしメモリはリニアだし、
link/unlinkでスタックフレームつくったりとか高級言語っぽい。
なので86系とか難しすぎて無理。
0685デフォルトの名無しさん2012/02/11(土) 01:43:26.07
まぁそれも死に行く運命だったのだよね。
0686デフォルトの名無しさん2012/02/11(土) 01:44:59.43
まあ簡単に言えばマカだったんだよね俺、昔は。
0687デフォルトの名無しさん2012/02/11(土) 01:46:16.97
あれ、すごく夜にいいよね。
0688デフォルトの名無しさん2012/02/11(土) 01:53:10.19
インダイレクトアドレッシングを理解していれば、ポインター概念は既に理解済みと言える、くらいの昔話か。
0689デフォルトの名無しさん2012/02/11(土) 01:55:26.36
ちょっと何が言いたいのかわからない。
0690デフォルトの名無しさん2012/02/11(土) 01:55:31.06
ゆとーりがC使わないのはポインタが理解できないから?
0691デフォルトの名無しさん2012/02/11(土) 01:59:33.47
大学の授業がJavaだから。
0692デフォルトの名無しさん2012/02/11(土) 01:59:51.74
Javaってなんでゆとり言語なん?
0693デフォルトの名無しさん2012/02/11(土) 02:00:08.37
>>438
2の乗数で一桁切り捨て
どんな場面で使うんだろう?
0694デフォルトの名無しさん2012/02/11(土) 02:01:48.35
>>690
Joel on Software ジョエル・オン・ソフトウェア
ttp://japanese.joelonsoftware.com/Articles/Interviewing.html
0695デフォルトの名無しさん2012/02/11(土) 02:01:49.91
>>692
ゆとりが使うから。
0696デフォルトの名無しさん2012/02/11(土) 02:04:01.52
>>692
Cのポインターとメモリ管理に挫折したプログラマー(世界の殆ど)を救うべく設計された言語!!
.....のはずだった。
0697デフォルトの名無しさん2012/02/11(土) 02:04:03.75
まぁ、Java見下してるやつは大概Java使いこなせてないけどな
0698デフォルトの名無しさん2012/02/11(土) 02:04:46.09
>>696
…のはずだった????
0699デフォルトの名無しさん2012/02/11(土) 02:22:40.08
すれち
0700デフォルトの名無しさん2012/02/11(土) 03:49:11.46
>>557
市販の高級時計は、ずれない高級時計と、ずれる高級時計に分類されるわけだけど
0701デフォルトの名無しさん2012/02/11(土) 04:16:03.08
ヘ ボ
0702 ◆QZaw55cn4c 2012/02/11(土) 05:40:34.07
>>661
MS-DOS の時代(16ビットコード)の昔話ね。今はまったく関係ない。
でも今でもわかっていない人がいるみたい。
0703 ◆QZaw55cn4c 2012/02/11(土) 05:42:16.34
>>653
>> DS!=SS 問題をご存知ない?DLL 書くときに苦労しませんでしたか?
> 全然苦労しない。
そう‥‥‥、やっぱりみんなあこぎなことしてたんんだ‥‥‥。
0704デフォルトの名無しさん2012/02/11(土) 08:22:23.30
例
void minmax(float** min, float** max, float* a, float* b)
{
if(*a>=*b) {
*max = a;
*min = b;
} else {
*max = b;
*min = a;
}
}

問題
minmidmax(float** min, float** mid, float** max, float* a, float* b float* c)
を最高に高速な方法で書け
0705デフォルトの名無しさん2012/02/11(土) 08:26:36.11
例の時点でバグってるが。
速度を気にする関数で引数をポインタにするのはヘボ。
0706デフォルトの名無しさん2012/02/11(土) 08:40:43.96
と思ったらダブルポインタか。
なんだその仕様。
0707デフォルトの名無しさん2012/02/11(土) 08:54:43.65
>>706
自分が勝手に誤解して、仕様に文句つけてる馬鹿にしか見えない。
0708デフォルトの名無しさん2012/02/11(土) 08:56:17.05
連投自己分析乙
0709デフォルトの名無しさん2012/02/11(土) 08:57:51.20
QZって無職なの?
0710デフォルトの名無しさん2012/02/11(土) 09:02:04.73
>>707
いや、>>705はそのままだが。
速度気にするところでポインタ使ってる時点でクソなのは決定だろ。
しかもfloat*。
0711デフォルトの名無しさん2012/02/11(土) 09:04:04.96
どういう経緯でその仕様になったかも知らずに、決定とか言ってる奴は馬鹿。
0712デフォルトの名無しさん2012/02/11(土) 09:05:35.19
じゃぁ経緯を言ってみろよ。
どうせ大馬鹿な話なんだろ?
07137042012/02/11(土) 09:22:45.40
おまえら相変わらずアスペルガーみたいな所にこだわるな。知障に説明してる気分だわ。

じゃあ704の例は忘れろ。悪かったな混乱させて。
例
float min(float a, float b) { if(a <= b) return a; else return b };
float max(float a, float b) { if(a >= b) return a; else return b };

問題
float min(float a, float b, flaot c)
float mid(float a, float b, flaot c)
float max(float a, float b, flaot c)
この3関数を連続して実行した場合と同様の結果を得られる方法を、最高に高速に書け。
0714デフォルトの名無しさん2012/02/11(土) 09:25:21.54
問題の体をなしてないな。
0715デフォルトの名無しさん2012/02/11(土) 09:26:11.10
>>713
最高に高速とか、池沼みたいなこと言うのやめればいいんじゃなイカ?
0716デフォルトの名無しさん2012/02/11(土) 09:28:22.54
QZって無職なの?
0717デフォルトの名無しさん2012/02/11(土) 09:30:51.23
なんで命令口調なの?
口の聞き方ってもんを知らないの?
0718デフォルトの名無しさん2012/02/11(土) 09:36:42.82
坊やだからさ。
07197042012/02/11(土) 09:39:39.12
>>717
おまえらが高速なコードぽんぽん書ける連中なら敬語使ってやるよ。
いまのところおまえらは口先だけの使えないゴミって認定だからな。俺の中で。
0720デフォルトの名無しさん2012/02/11(土) 09:40:39.60
と、ゴミ以下がほざいております。
0721デフォルトの名無しさん2012/02/11(土) 09:41:50.90
>>719
よく分かってるじゃないか!
分かってるならうせろクズ
0722デフォルトの名無しさん2012/02/11(土) 09:45:15.67
はい、自分の仕事は自分でしましょうね。
0723デフォルトの名無しさん2012/02/11(土) 09:47:38.42
高速にしたいならSSE使えばいいのに。
今時SSE使えない環境なんか気にしないでしょ?
0724デフォルトの名無しさん2012/02/11(土) 10:19:15.65
で、QZって無職なの?
0725デフォルトの名無しさん2012/02/11(土) 10:33:53.54
>>703
まとめると、お前には超えられなかった壁という事だ。バカは引っ込んでろ。
0726デフォルトの名無しさん2012/02/11(土) 10:46:40.98
>>712
>じゃぁ経緯を言ってみろよ。

想像通りな馬鹿反応。
0727デフォルトの名無しさん2012/02/11(土) 10:48:42.16
などと意味不明な供述をしており
0728デフォルトの名無しさん2012/02/11(土) 10:57:33.36
馬鹿には、意味不明なんだ… (w
0729デフォルトの名無しさん2012/02/11(土) 11:01:56.78
かわいそうに、よっぽど馬鹿馬鹿言われてるんだろうな。
0730デフォルトの名無しさん2012/02/11(土) 11:21:54.25
とても単純な質問なのですが、、下記のソースでポインタ変数pのアドレスを
他のポインタ変数ppで保持したいとき、**ppではなく*ppで受けることはできないのでしょうか?

<ダブルポインタを使う>
int *p;
int **pp;

pp = &p;

↓

<ポインタを使う>
int *p, *pp;

pp = &p;

0731デフォルトの名無しさん2012/02/11(土) 11:24:34.01
>>730
キャストすれば代入はできる
でも型情報を捨てるメリットはほとんどない
0732デフォルトの名無しさん2012/02/11(土) 11:27:12.58
>>731
キャストが必要ということは、ポインタ変数のアドレスを保持するためには
やはりダブルポインタでないといけないということでしょうか?

ポインタ変数とて、結局ただの変数なので、ポインタ変数のアドレスも、
通常の変数のアドレスと何ら変わらないはず。
だったら、一段(?)の*ppで*pのアドレス保持ができてよいのになと
思った次第です。
0733デフォルトの名無しさん2012/02/11(土) 11:30:12.54
そんな時のためのvoid
void *pp = &p
0734デフォルトの名無しさん2012/02/11(土) 11:31:25.14
>>732
できるけど意味ないよって書いたつもり
0735デフォルトの名無しさん2012/02/11(土) 11:32:10.76
>>733
void型ですか。。

いまいち、キャストすればいけるという意味がわかってないのですが、
ソースで書くと下記のようにしないといけないということでしょうか?

int *pp = (int *)&p;
0736デフォルトの名無しさん2012/02/11(土) 11:32:57.24
>>729
>>729
0737デフォルトの名無しさん2012/02/11(土) 11:33:19.84
int *とは違うものを入れてるんだから当然だろ。
voidで何の問題があるんだ。
0738デフォルトの名無しさん2012/02/11(土) 11:35:02.51
>>737
int i;
int *p, *pp;

pp = &p;

というコードがあったとして、&iの&pの値は同じアドレスでも、
型は違うのでしょうか?
0739デフォルトの名無しさん2012/02/11(土) 11:35:11.88
>>730
typedef int * pint;

int *p;
pint *pp;

pp = &p;
0740デフォルトの名無しさん2012/02/11(土) 11:35:43.67
>>737
void型変数というものを初めて見たので戸惑ったのですが、
そう言う書き方もあるのですね。
0741デフォルトの名無しさん2012/02/11(土) 11:37:26.42
>>730
エスパーしてみる

Cでは
void foo(int& *p) {...}
てのはできないから
void foo(int **pp) {
int *p = *pp;
}
とキャストしてやれば
呼び出し元と同じように扱える
0742デフォルトの名無しさん2012/02/11(土) 11:37:52.54
>>739
(int *)型の*ppを作っているということですよね?
つまり、結局ダブルポインタにするしかないということでしょうか?
なぜそうなのか、いまいちなっとくできなく困っています。
0743デフォルトの名無しさん2012/02/11(土) 11:37:58.92
型情報がいらないならBかアセンブリでも使えよ。
型情報の意義を理解していない初心者か?
0744デフォルトの名無しさん2012/02/11(土) 11:38:52.13
Bなんて使ったこともないくせによく言うな。
0745 ◆QZaw55cn4c 2012/02/11(土) 11:41:32.62
>>725
誰がやっても超えられないですねえ。馬鹿はどっち?
0746デフォルトの名無しさん2012/02/11(土) 11:41:35.83
>>741のレスを見て何となくわかってきたのですが、
>>738の質問の答えがわかれば、それが確信に変わる
気がします
0747 ◆QZaw55cn4c 2012/02/11(土) 11:42:34.85
>>740
つ qsort()
0748デフォルトの名無しさん2012/02/11(土) 11:42:35.54
>>743
ありますが、何か?
0749デフォルトの名無しさん2012/02/11(土) 11:44:14.96
>>746
int *p,*q,n=0;
p=q=&n;
としたとき
&p と &q はイコールじゃないから。
0750デフォルトの名無しさん2012/02/11(土) 11:44:21.08
>>745
お前だということには誰も異論はない。
0751デフォルトの名無しさん2012/02/11(土) 11:44:35.11
>>745
超えられないバカは引っ込んでな。
0752デフォルトの名無しさん2012/02/11(土) 11:47:23.22
>>746
えぇ?
おれには>>741のどこにキャストがあるのかがわからないんだが。
07537302012/02/11(土) 11:47:42.26
>>738の質問が、よく読んだら意味不明なので書き直しますw

int i;
int *p, *pp;

pp = &i; // こっちは問題なし
pp = &p; // こっちはダメ(だけど理由がわからない)

&iと&pは両方ともアドレス値(もちろん違う変数なのでアドレス値自体は違う)
であるから、通常のアドレス変数*ppで受けられるんじゃないの?と思ってしまう

でも実際にはダメ。

その理由は、&iと&pは同じアドレス値であっても、型が違うということでしょうか?
アドレスの型と言うものも、いまいちわからないポイントです。。
0754デフォルトの名無しさん2012/02/11(土) 11:48:04.79
ダメなのは型が違うから。
0755デフォルトの名無しさん2012/02/11(土) 11:48:54.02
アドレスの型というか、ポインタがさしてるものによって+1したときに
実際に進む大きさが違うのだよ。
0756デフォルトの名無しさん2012/02/11(土) 11:51:28.27
つーか、普通は警告が出るだけでダメじゃないけどな。
07577302012/02/11(土) 11:53:36.34
>>755
うぉぉぉぉぉ、なるほど!確かにそうですね!!

つまり、

int i;
int *p, *pp;

// OKな場合
pp = &i;
pp++; // iがint型なので、int幅でアドレスがインクリメントされてちょうどいい

// NGな場合
pp = &p;
pp++; // *pはあくまで(int *)型であり、int型のアドレス幅ではないので、
// int幅でアドレスがインクリメントされちゃうと非常によろしくない

ってことですよね?

ダブルポインタにする意義が理解できました。
どうもありがとうございます!
0758デフォルトの名無しさん2012/02/11(土) 11:56:45.07
何言ってるんだかよくわからんが、多分それは違う。
0759 ◆QZaw55cn4c 2012/02/11(土) 11:57:02.91
>>750 >>751
char *p; とかけばレジスタ一つに対応する普通の環境のもとで、64Kの壁を超えられるというのならば、じゃあどうやって超えるか示してください。
0760デフォルトの名無しさん2012/02/11(土) 12:00:11.32
>>752
たしかにw
もうしわけない
07617302012/02/11(土) 12:01:30.49
>>758
えっ?違うんです??
違うとするとまた迷宮入りなんですが(´;ω;`)
0762 ◆QZaw55cn4c 2012/02/11(土) 12:12:51.68
>>761
>>757 の予感はあたっているでしょう
http://codepad.org/2PorNxdR
07637622012/02/11(土) 12:13:42.17
メ欄は無視してね。消すの忘れた
0764デフォルトの名無しさん2012/02/11(土) 12:15:01.98
>>759
痴呆の症状がどんどん進んでいるな? レジスタ二つだろ。

> far を使おうが何をしようが、64KB の壁は
>
> 超 え ら れ な い
0765 ◆QZaw55cn4c 2012/02/11(土) 12:19:02.83
>>764
ここはCスレ。
char *p;
と書いたときに、対応するのはレジスタ一つ。

それとも char *p に対して賢くもレジスタ2つを操作してくれるコードが生成されるコンパイラが存在するのか?
そういえば base( ) とかいうキーワードがあったなあ‥‥‥。
0766デフォルトの名無しさん2012/02/11(土) 12:20:08.53
そんな昔話をして意味もないだろうが、MS-Cでhuge modelでコンパイルすれば
いいだけじゃないのか?
0767デフォルトの名無しさん2012/02/11(土) 12:23:14.10
hugeはポインタでコンパイルはラージモデルか。
何十年前の話だ。
0768 ◆QZaw55cn4c 2012/02/11(土) 12:27:43.82
>>766
うん。

でもたとえば古のニュースリーダ 'mnews' を huge モデルでコンパイルしてもうまくいかなかったんです。あー、BSDソケットとかはascii のライブラリにあわせたつもりです。
huge モデルは huge ポインタを使うと思っていたのですが、どうも huge ポインタは信頼できない。
本当は原因を追究しなければならないところでしょうけれども、道端に寝っ転がって駄々をこねたいほどめんどくさくって諦めました。
0769デフォルトの名無しさん2012/02/11(土) 12:28:44.18
うん、だ?
ほんとに痴呆なんだな。
0770デフォルトの名無しさん2012/02/11(土) 12:29:33.27
昔話は他所でやって欲しい
0771デフォルトの名無しさん2012/02/11(土) 12:29:55.26
頭の悪い QZ 自体が信頼できない
0772 ◆QZaw55cn4c 2012/02/11(土) 12:34:06.59
>>769
ポインタ演算するたんびに正規化とやらのセグメント:オフセット調整ももれなくついてくるという無駄さに耐えられますか?huge ポインタは確かそういう仕様のはず。

>>770
じゃあやめます。
0773デフォルトの名無しさん2012/02/11(土) 12:40:04.86
で、それは>>765に対して答えじゃないというのか。
頭おかしいんじゃねーか?
0774デフォルトの名無しさん2012/02/11(土) 12:52:37.83
>>772
みんな耐えてたんだよ
だから PC の今がある

8086 のセグメントは確かに扱いづらかったが
ただそれだけだ

それから char *p; がレジスタとかはこっちでやってくれ
http://toro.2ch.net/test/read.cgi/tech/1179424842/
&p の一言で崩れるうましか発言の相手はしてられん
07757302012/02/11(土) 12:57:09.36
>>762
とりあえず、>>757の認識はあってそうとのことでよかったです。
ただ、あげてもらったソースの意味を解釈していて、わからないことが。。

・(void *)でキャストしてる意味はなんでしょうか?
 →printf("c = %p, *c = %p, **c = %c¥n", c, *c, **c); としない理由は何でしょうか?

・printfで出力される各値の意味は、下記の認識でよろしいでしょうか?
 c = は**c変数のアドレス値そのもの
 *c = は**c変数のアドレス値を(char *)型のアドレス幅を1とした基準で見た場合のアドレス値
 **c = は**c変数が保持しているポインタ変数*bの示すchar値
0776 ◆QZaw55cn4c 2012/02/11(土) 12:58:53.63
>>773
>で、それは>>765に対して答えじゃないというのか。
そのとおり。 >>772 の huge ポインタは答ではない。「huge ポインタには信頼性がない。」というのがその最たる理由。そして「効率悪すぎ」が二番目の副次的な理由。

huge ポインタにはバグがある、とは当時よくいわれたものだ。本にまで書かれているぐらいだ。
http://www.amazon.co.jp/dp/4789834875/
http://www.amazon.co.jp/dp/4789834840/
かそのあたりの本だったと記憶している。

したがって、

far を使おうが何をしようが、64KB の壁は
超 え ら れ な い

>>770
ごめんなさい。
0777 ◆QZaw55cn4c 2012/02/11(土) 13:01:14.00
>>774
>みんな耐えてたんだよ
>だから PC の今がある

そうなんですか‥‥‥
にわかには信じがたいのですが。でも私の V30 じゃ、ついていけそうもないですね (++)
0778デフォルトの名無しさん2012/02/11(土) 13:01:33.02
バグってんのはお前の頭だろ。
0779 ◆QZaw55cn4c 2012/02/11(土) 13:03:45.62
>>774
>それから char *p; がレジスタとかはこっちでやってくれ
言葉をはしょったので、結果そういう書き方になってしまい誤解を招いたようでごめんなさい。「ポインタ変数はレジスタに一対一だ」というつもりは毛頭ありません。
0780デフォルトの名無しさん2012/02/11(土) 13:16:46.54
ほんと、バカの壁は越えられないんだなと痛感するよね。
0781 ◆QZaw55cn4c 2012/02/11(土) 13:17:31.84
>>775
>・(void *)でキャストしてる意味はなんでしょうか?
>→printf("c = %p, *c = %p, **c = %c¥n", c, *c, **c); としない理由は何でしょうか?
うちのコンパイラ gcc4.3.4/cygwin on Windows では (void *) キャストしろと警告をだしてくるからつけただけです。それだけですから、深い意味はありません。

>下記の認識でよろしいでしょうか

 c はc変数の値そのもの
 *c はc変数が指すメモリの内容。メモリサイズは、この環境では sizeof((char *)) = 4バイト32ビット
 c変数は配列bの各要素を順々に指していく。配列b は char 配列 a の各要素を指している。
*c は配列bの内容。
**c は配列b の各要素が指すメモリ内容を、メモリサイズ sizeof(char) で「取ってきた」その値。

認識はだいたいあっていると思いますので、あとはいろいろ試してみてください。
07827302012/02/11(土) 13:19:02.87
>>781
ご丁寧な解説をいただきまして、どうもありがとうございます。
私の疑問は全て解決いたしました。

いろいろ試して理解を深めてみます。
0783デフォルトの名無しさん2012/02/11(土) 13:31:55.02
>>730

int i;
int *p, *pp;

この表記は間違いやすいから、
今度からは、

int i;
int *p;
int **pp;

と書こう。

それか、

int i, *p, **pp;

と書こう。
書き方のせいで混乱している気がする。

int i = 0x8888888;
int *p, *ptr;
int **pp;

と書いた時に、

p = &i;
pp = &p;
ptr = p;

と書くのは大丈夫なんだ。
0784デフォルトの名無しさん2012/02/11(土) 13:34:46.15
おい、QZ はバカかもしれんが、初心者の質問に対して的確なコードを示し、今日も初心者をひとり成仏させたぞ
脅迫罪とか64Kの壁(爆笑)とかどうでもいいから QZ を見習え
0785デフォルトの名無しさん2012/02/11(土) 13:34:55.97
>>782
>>781が私には見えないので、コテの人だと思うけど、どうなんだろ。

int i;
int *p;
int **pp;

ぐらいでpointerの意義を理解できるとは思えない。
いい方が悪くて、申し訳ないけど、
理解した気になっているだけだと思う。
0786デフォルトの名無しさん2012/02/11(土) 13:37:09.06
>>784
自演乙。
0787デフォルトの名無しさん2012/02/11(土) 13:44:59.04
>>757
> int i;
> int *p, *pp;
>
> // OKな場合
> pp = &i;
> pp++; // iがint型なので、int幅でアドレスがインクリメントされてちょうどいい
>
> // NGな場合
> pp = &p;
> pp++; // *pはあくまで(int *)型であり、int型のアドレス幅ではないので、
> // int幅でアドレスがインクリメントされちゃうと非常によろしくない
>
> ってことですよね?

悪いけど、こういう書き方されても、
理解できてないとしか思えない。

まず、ppの定義を
int **pp;
として、>>757をもう一度書いてみてよ。
ppが不適切であればpに書き換えるなどしてよ。
0788デフォルトの名無しさん2012/02/11(土) 13:48:17.05
>>785
コテの人ですがあえてコテをはずしておきます。
>いい方が悪くて、申し訳ないけど、理解した気になっているだけだと思う。

確かに、ある意味ではそのとおりですね。

1) 理解したつもりになっている
2) やっぱりわからなくなった
3) そこで自力で納得する精神作業を適用し 1) にもどる

のスパイラルを繰り返しながら少しずつ前進していくのが本当のところだと実感します。
だから>>781で「いろいろ試してみてください」と書いておきました。

ただ、
>いい方が悪くて、申し訳ないけど、理解した気になっているだけだと思う。
と言い放つのは容易ではあります。

>>786
自演認定今日もご苦労様です。
07897302012/02/11(土) 13:48:30.27
>>787
混乱させてしまいすみません。

>>757でのこちらの意図は、
int i;
int *p;
int *pp;

の意味で書いています。

int *p, *pp;

と書くと、

int *p;
int **p;

という意味になってしまい、不適切でした。
すみません。気をつけます。
0790785=7872012/02/11(土) 13:52:37.73
**pp;
を使ってさっと書けるのはこんなもん。
int を使う場合に良い例は思いつかんかった。
私が **pp の必要性に迫られるのは、いつも文字列の時。

#include <stdio.h>

int main(void)
{
char *messages[] = {"good morning", "hello", "good bye", "see you", NULL};
char **pp;
int i;

for(i=0;messages[i] != NULL;i++){
fprintf(stderr, "messages[%d] = \"%s\"\n", i, messages[i]);
}

pp = messages;
for(i=0;pp[i] != NULL;i++){
fprintf(stderr, "pp[%d] = \"%s\"\n", i, pp[i]);
}

return 0;
}
0791デフォルトの名無しさん2012/02/11(土) 13:58:09.68
>>790
>>762 に比べると物理的に長すぎる。
もっと要点をぱぱっと書けませんか?

ちなみにうちの会社では、「下位者に知識を伝達できること」をもって、はじめて職務上あるいは業務上の知識を取得したとみなされます。
0792デフォルトの名無しさん2012/02/11(土) 14:02:38.51
つまり 昇進したいから教えてくれ っていう
0793 ◆QZaw55cn4c 2012/02/11(土) 14:05:46.60
ちがう 昇進したいから教わってくれ、だ
0794デフォルトの名無しさん2012/02/11(土) 14:08:10.23
何いってんだ?
730はダブルポインタを教えるための教科書みたいなモンを教えてほしいんだろ?
それが昇進に繋がるならなおさらじゃん
デマ教えまくってクビ切りさせようぜ
0795デフォルトの名無しさん2012/02/11(土) 14:12:02.71
で、QZって無職なの?
0796 ◆QZaw55cn4c 2012/02/11(土) 14:12:21.31
今回は >>755 が重要なきっかけをがっしり押さえた後で、QZ がとんびのように手柄を横取りして、いい気になっている、というのが正確なところか。
07977302012/02/11(土) 14:13:37.39
>>790
私のような初心者にはこちらの方がわかりやすいかもしれません。
配列は結局先頭アドレスを保持したポインターなので、それを
受ける変数をイニシャライザーなしで定義するにはダブルポインター
にするしかないということですね。

ついでにstderrについて学べたのもよかったです。

また、何気なく使ってたprintfが、じつはfprintf(stdout, 〜);
だったこともわかりよかったです。

ありがとうございます。
0798デフォルトの名無しさん2012/02/11(土) 14:18:02.55
>>796
志村、コテコテw
0799デフォルトの名無しさん2012/02/11(土) 14:18:57.77
結論: 64Kの壁とはバカには超えられない壁であった。
0800デフォルトの名無しさん2012/02/11(土) 14:19:09.31
>>797
いろいろずれてるが、まぁ気にすんな。
0801デフォルトの名無しさん2012/02/11(土) 14:20:02.01
手柄ってなんだ?
08027302012/02/11(土) 14:21:46.79
>>800
すみません、ずれてるところが気になります。。
「ここがちげーだろ馬鹿野郎」とご指摘いただけますと幸いです。
0803デフォルトの名無しさん2012/02/11(土) 14:23:09.90
配列はポインタじゃない。配列は配列。
08047302012/02/11(土) 14:26:50.01
>>803
そうなんですか。。やっぱりわかってないですね。

message[i]
pp[i]

のように、同じように書けるので実体は同じなのかと
思っていました。

配列の方は、アドレスを連続してメモリ確保し、定義時の
範囲外を指定するようなソースを書くと、コンパイルエラーを
出してくれるという違いでしょうか?
0805デフォルトの名無しさん2012/02/11(土) 14:30:02.18
基地害はレスすんなって
0806デフォルトの名無しさん2012/02/11(土) 14:30:30.28
QZは精神病んで仕事してないって話だったはず
0807 ◆QZaw55cn4c 2012/02/11(土) 14:34:31.36
>>798
固定ハンドルじゃありません、トリップと固定ハンドルとは異なる概念です、霧
0808デフォルトの名無しさん2012/02/11(土) 14:37:22.23
>>807
ゴキブリを擁護してたゴミはレスすんなって
0809785=7872012/02/11(土) 14:41:39.18
int i, *p;

とした時に、

p = &i;

ってする必要性に迫られることはまず無い。

ましてや、

p++;

なんてすること100%ない。
悪いけど、上の書き方で理解しようとしないで欲しい。

int ary_a[] = {0, 1, 2, 3, 4, 5, 6, 7};
int ary_b[] = {100, 101, 102, 103, 104, 105, 106, 107};
int *p;
int **pp = {ary_a, ary_b};

// OKな場合
p = ary_a;
pp = &p;
p++; // pの型が(int *)型なので、(int)幅でアドレスがインクリメントされる
pp++; // ppの型が(int **)型なので、(int *)幅でアドレスがインクリメントされる

// NGな場合
面倒くさくなったのでNGな場合は書きません。

ってことです。
0810785=7872012/02/11(土) 14:42:50.95
あと、適当な参考例書いておいたので、頑張ってみて下さい。
分からない所があれば聞きに来て下さい。

http://codepad.org/GtPbUqA2
0811デフォルトの名無しさん2012/02/11(土) 14:43:21.16
>>809
> 面倒くさくなったのでNGな場合は書きません。

書けません の間違いだろ
アホはさっさと消えろ
0812785=7872012/02/11(土) 14:46:17.81
codepadは流れる可能性があるので、
3回に分けて>>810の内容を投稿。

1/3

#include <stdio.h>

#define ELEMENT_NUM 8

void dump(void *p, int n)
{
int i;
unsigned char *data = (unsigned char *)p;

fprintf(stdout, "dumped start = %p\n", p);

fprintf(stdout, "%*s", 11, "");
for (i=0;i<16;i++){
fprintf(stdout, "%02x ", (unsigned int )(data + i) & 0x0f);
}
fprintf(stdout, "\n");

for (i=0;i<n;i++) {
if (i % 16 == 0) {
fprintf(stdout, "%p ", data + i);
}
fprintf(stdout, "%02x ", data[i]);
if ((i + 1) % 16 == 0) {
fprintf(stdout, "\n");
}
}
}
0813785=7872012/02/11(土) 14:46:59.33
2/3

int main(void)
{
int ary_a[] = {0x00010203, 0x04050607, 0x08090a0b, 0x0c0d0e0f,
0xbb04, 0xba05, 0xb906, 0xb807};
int ary_b[] = {0xf00, 0xe01, 0xd02, 0xc03, 0xb04, 0xa05, 0x906, 0x807};
int *p;
int *ary_a_b[] = {ary_a, ary_b};
int **pp;

int i, j;

fprintf(stdout, "ary_a = %p\n", ary_a);
for(i=0;i<ELEMENT_NUM;i++){
fprintf(stdout, "ary_a[%d] = 0x%08x\n", i, ary_a[i]);
}
fprintf(stdout, "\n");

fprintf(stdout, "ary_b = %p\n", ary_b);
for(i=0;i<ELEMENT_NUM;i++){
fprintf(stdout, "ary_b[%d] = 0x%08x\n", i, ary_b[i]);
}
fprintf(stdout, "\n");

fprintf(stdout, "ary_a_b = %p\n", ary_a_b);
for(j=0;j<2;j++){
fprintf(stdout, "ary_a_b[%d] = %p\n", j, ary_a_b[j]);
}
fprintf(stdout, "\n");
0814785=7872012/02/11(土) 14:47:58.20
>>812-814
で完了。

3/3

pp = ary_a_b;
fprintf(stdout, "pp = %p\n", pp);
for(j=0;j<2;j++){
fprintf(stdout, "pp[%d] = %p\n", j, pp[j]);
for(i=0;i<ELEMENT_NUM;i++){
fprintf(stdout, "pp[%d][%d] = 0x%08x\n", j, i, pp[j][i]);
}
fprintf(stdout, "\n");
}

/* 128 は適当 */
dump(ary_a, 128);

return 0;
}
0815 ◆QZaw55cn4c 2012/02/11(土) 14:49:14.25
>>812−814
長い‥‥‥。
08167302012/02/11(土) 14:49:43.09
>>809
確かに、単変数iを定義しといて、そのアドレスを保持するポインタを
インクリメントすることはナンセンスですね。。例が悪かったです。
通常は、おっしゃる通り配列を受ける際にポインタを使用しますね。

>>810
参考例、読んでみます。
わからないことが出たらまた、聞きにきます。

貴重なお時間割いていただきどうもありがとうございます。
0817 ◆QZaw55cn4c 2012/02/11(土) 14:51:03.17
>>808
レスってなんですか?
0818デフォルトの名無しさん2012/02/11(土) 14:57:13.17
>>816
>>810のdump()の出力内容を理解するには、endianの知識が必要になる。
http://ja.wikipedia.org/wiki/%E3%82%A8%E3%83%B3%E3%83%87%E3%82%A3%E3%82%A2%E3%83%B3
の「概要」の箇所をまず読んで欲しい。

dump内容を例と結びつけるのは大変だと思うけど、
紙でも使って頑張って。

>>811
投稿順序が逆になっちゃったけど、
>>810の例を書いていてめんどくなっちゃった。
>>810で十分だろって思ったらもういいやって思って書かなくなった。
そもそも、駄目な例は知らなくていいし。
初心者のうちは駄目な例ってのは有害だと思う。
初心者は、綺麗な良い例を学ぶだけで十分なんだよ。
0819785=7872012/02/11(土) 15:06:59.30
>>816
>>812の dump()だけ以下の内容で書き換えて。
こっちの方が理解しやすい。
void dump(void *p, int n)
{
int i;
unsigned char *data = (unsigned char *)p;

fprintf(stdout, "dumped start = %p\n", p);

fprintf(stdout, "%*s", 11, "");
for (i=0;i<16;i++){
fprintf(stdout, "%02x ", (unsigned int )(data + i) & 0x0f);
if ((i + 1) % 4 == 0) {
fprintf(stdout, "| ");
}
}
fprintf(stdout, "\n");

for (i=0;i<n;i++) {
if (i % 16 == 0) {
fprintf(stdout, "%p ", data + i);
}
fprintf(stdout, "%02x ", data[i]);
if ((i + 1) % 4 == 0) {
fprintf(stdout, "| ");
}
if ((i + 1) % 16 == 0) {
fprintf(stdout, "\n");
}
}
}
08207302012/02/11(土) 15:08:22.93
>>818
エンディアンについては知っていました。
wikiは読んで再確認しました。

ただ、それ以前に問題が、、

12: fprintf(stdout, "%*s", 11, "");

がわかりません。

"%*s"ってどういう意味でしょうか?

また、引数に11と""が入るのはなぜでしょうか。
0821デフォルトの名無しさん2012/02/11(土) 15:08:23.72
ただでさえ掲示板でのやり取りじゃ伝わりにくいのに、頭の悪い奴に説明されるとかえって有害になるな
0822デフォルトの名無しさん2012/02/11(土) 15:29:58.28
>>820について自己解決しました。
%*sとすると、フィールド幅を引数で指定することができる

つまり、

printf("%*s", 11, "");

とすると、11桁のフィールド幅で文字列を表示し、その文字列は空文字
になっている

結果として、11桁のスペースが出力される

また一つ勉強になりました。
0823785=7872012/02/11(土) 15:30:02.35
>>815
短い例、短い例って馬鹿じゃないの?
>>730には短い例で説明するのは不可能だよ。
初心者さんで、自分から向上しようとする珍しい初心者さんだから、
頑張って>>810,812-814を書いたんだ。

>>755は間違いじゃないけど、正確でも無い
アドレスに型はない。
単なる数値だよ。
アドレスの型といういい方はしない。

正確には、

何の型のポインタかによって、
+1したときに進む大きさが違う。
実際に進む大きさは、
sizeof(型)
で決められる。

実行例。

sizeof(char) = 1
sizeof(char *) = 4
sizeof(int) = 4
sizeof(int *) = 4
sizeof(void) = 1
sizeof(void *) = 4
str = 0x8048650, "abcdef"
p + 1 = 0x8048651
p_int + 1 = 0x8048654
p_void + 1 = 0x8048651
0824デフォルトの名無しさん2012/02/11(土) 15:30:54.44
>>823の実行例を出力する。

#include <stdio.h>

int main(void)
{
char *str = "abcdef";
char *p;
int *p_int;
void *p_void;

p = str;
p_int = (int *)str;
p_void = (void *)str;

fprintf(stdout, "sizeof(char) = %d\n", sizeof(char));
fprintf(stdout, "sizeof(char *) = %d\n", sizeof(char *));
fprintf(stdout, "sizeof(int) = %d\n", sizeof(int));
fprintf(stdout, "sizeof(int *) = %d\n", sizeof(int *));
fprintf(stdout, "sizeof(void) = %d\n", sizeof(void));
fprintf(stdout, "sizeof(void *) = %d\n", sizeof(void *));

fprintf(stdout, "str = %p, \"%s\"\n", str, str);
fprintf(stdout, "p + 1 = %p\n", p + 1);
fprintf(stdout, "p_int + 1 = %p\n", p_int + 1);
fprintf(stdout, "p_void + 1 = %p\n", p_void + 1);

return 0;
}
08257302012/02/11(土) 15:31:34.77
>>822
あ、間違えてメル欄に書いちゃったw
0826785=7872012/02/11(土) 15:35:57.83
俺は忘れちゃった。

分かるだろうけど、>>824も俺。
08277302012/02/11(土) 15:38:37.96
>>823-824
ありがとうございます。
よくわかりました。

sizeof()で実際にコードを書いてみれば一目瞭然ですね。
環境によるかもしれませんが、この場合、ポインタは
(char *)でも、(int *)でも(void *)でも4バイトなんですね
08287302012/02/11(土) 15:41:37.43
それから、(void *)型は、インクリメントステップは1バイトなんですね

自分は結構Cを嗜んでいた方だと思っていましたが、まだまだ知らないことが
たくさんありますね

OOPでないレガシーなCも、やっぱり奥深い
08297302012/02/11(土) 15:47:52.54
ちなみに、私の環境でのダンプ結果は下記になりました。
行数長いので、一部省略してます

ary_a = 0x7fff5fbff5d0
(中略)

ary_b = 0x7fff5fbff5b0
(中略)

ary_a_b = 0x7fff5fbff590
(中略)

pp = 0x7fff5fbff590
pp[0] = 0x7fff5fbff5d0
(中略)

pp[1] = 0x7fff5fbff5b0
(中略)
dumped start = 0x7fff5fbff5d0
00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
0x7fff5fbff5d0 03 02 01 00 07 06 05 04 0b 0a 09 08 0f 0e 0d 0c
0x7fff5fbff5e0 04 bb 00 00 05 ba 00 00 06 b9 00 00 07 b8 00 00
0x7fff5fbff5f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x7fff5fbff600 18 f6 bf 5f ff 7f 00 00 74 08 00 00 01 00 00 00
0x7fff5fbff610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x7fff5fbff620 01 00 00 00 00 00 00 00 58 f7 bf 5f ff 7f 00 00
0x7fff5fbff630 00 00 00 00 00 00 00 00 bc f7 bf 5f ff 7f 00 00
0x7fff5fbff640 cc f7 bf 5f ff 7f 00 00 06 f8 bf 5f ff 7f 00 00
0830デフォルトの名無しさん2012/02/11(土) 15:51:41.14
アホv.s.バカの掛け合いである。
何の役にも立たない。
かえって有害。
0831デフォルトの名無しさん2012/02/11(土) 15:52:11.29
結構Cを嗜んでいた
なんてどの口が言えるんだろう...
0832デフォルトの名無しさん2012/02/11(土) 15:54:10.36
だからさっき基地害はレスするなって言ったんだよ。
本人に自覚がないからいつまでもしがみついてるのか、
それとも荒らし目的か。
0833デフォルトの名無しさん2012/02/11(土) 15:58:22.86
うるさいゴミ
0834デフォルトの名無しさん2012/02/11(土) 15:59:37.31
>>832
死ね死ね死ね死ね死ね
08357302012/02/11(土) 16:01:07.31
>>823
私の環境だと、ポインタは8バイトでした。
また、sizeofの戻り値がunsigned longだったので、%d→%luに変更して
コンパイル・実行しました。

sizeof(char) = 1
sizeof(char *) = 8
sizeof(int) = 4
sizeof(int *) = 8
sizeof(void) = 1
sizeof(void *) = 8
str = 0x100000e90, "abcdef"
p + 1 = 0x100000e91
p_int + 1 = 0x100000e94
p_void + 1 = 0x100000e91

提供いただいたdumpコードは動作がわかり、勉強になりました。
どうもありがとうございます。

迷惑になるので、とりあえずこの辺にしておきます。
スレ汚し失礼しました。
0836デフォルトの名無しさん2012/02/11(土) 16:02:45.53
>>835
コンパイラ何使ってんの?
08377302012/02/11(土) 16:04:20.92
>>836
調べたところgcc 4.2でした。
0838デフォルトの名無しさん2012/02/11(土) 16:09:23.79
OSは?
64bitとか、使ったことないわw
08397302012/02/11(土) 16:13:43.40
>>838
ここでは叩かれちゃうかもしれませんが、、Mac OS X Snow Leopard 10.6.8です
(最新のMac OS X Lion(10.7)は、評判悪そうなのでまだ控えてます)
Windows 7もBoot campで入れてありますが、常用しているのは
Mac OS Xの方です。
おっしゃる通り64bitマシンです
0840785=7872012/02/11(土) 16:14:09.05
>>827
> 環境によるかもしれませんが、この場合、ポインタは
> (char *)でも、(int *)でも(void *)でも4バイトなんですね
そうそう。

sizeof(void *)と同じ大きさだと思ってたから、
私もsizeof(void)について勉強になった。
1だとは思わなかったよ。

参考までに。
linuxだけど、私が知っているsizeof(int), sizeof(void *)が8になる環境は、
CPUが64bitなだけじゃ駄目で、kernelも64bit版のものでないと駄目。
windowsは知らん。

>>815
◆QZaw55cn4cは、
初心者にきちんと話をできないんだったら黙ってろよ。
はっきり言いますが、

◆QZaw55cn4cは、有害でしかない。

今回は初心者の方に絡んでいるようだったので、
何を書いているか確認しましたが、やはり確認する必要のないものでした。

>>829は貴重な環境を持っているじゃないか。
>>824を試してみて。
多分、私と違う実行結果になるよ。

うーん、初心者の方じゃなかったのだろうか。
うーん。
0841デフォルトの名無しさん2012/02/11(土) 16:15:11.62
>>839
いや、もちろんOSは64bitだけど、ポインタが64bitってのを使ったことがないのよ。
macだとgccデフォで64bitなんか。
0842785=7872012/02/11(土) 16:15:59.41
>>835
>>814に以下を追加して。
細かいerrorが出るだろうけど、適時自分で修正して。

int dump_size;
dump_size = sizeof(int) * 19 + sizeof(int *) * 1 + sizeof(int **) * 2;
fprintf(stdout, "dump_size = %d, 0x%08x\n", dump_size, dump_size);

dump(ary_a, dump_size);
0843デフォルトの名無しさん2012/02/11(土) 16:17:43.07
>>840
でたらめまき散らすの止めて引っ込んでろ。お前もQZと同程度の害虫だ。
0844デフォルトの名無しさん2012/02/11(土) 16:18:20.70
え、コテはずしたQZじゃないの?
08457302012/02/11(土) 16:22:56.42
>>840
いろいろとお付き合いいただきどうもありがとうございます。
とても勉強になっています。
プログラミングは趣味で好きでやってますが、ご覧の通り、
私はまだまだ知らないことの多い初心者ですよ。。

作っていただいた>>824を試した結果が、>>829です
改行が多くて全てはのせきれませんでしたが。。

>参考までに。
>linuxだけど、私が知っているsizeof(int), sizeof(void *)が8になる環境は、
>CPUが64bitなだけじゃ駄目で、kernelも64bit版のものでないと駄目。
なるほど、そうなんですね。
Intel C2Dなので、もちろんCPUは64bitですが、kernelも今は64bitで動かしてます。
Snow Leopardは、32bit→64bit移行期の微妙なところのOSなので、実は、
一部32bitで動いているソフトもあったりします。
詳しいことはわかりませんが、そこは、結構柔軟にOSが対応しているようです。
0846デフォルトの名無しさん2012/02/11(土) 16:31:21.68
>>845=初心者を免罪符に使うゴミクズ
08477302012/02/11(土) 16:32:02.69
>>842
もしかしたら、何かの参考になるかもしれないので、一応、結果あげますね
まだ、意味は理解してませんが、とりあえず実行結果です
オリジナルのdump(ary_a, 128);はコメントアウトしました。
(改行が多いと怒られてしまうので、最後のdump結果だけのせます)

dump_size = 100, 0x00000064
dumped start = 0x7fff5fbff5d0
00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
0x7fff5fbff5d0 03 02 01 00 07 06 05 04 0b 0a 09 08 0f 0e 0d 0c
0x7fff5fbff5e0 04 bb 00 00 05 ba 00 00 06 b9 00 00 07 b8 00 00
0x7fff5fbff5f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x7fff5fbff600 18 f6 bf 5f ff 7f 00 00 24 08 00 00 01 00 00 00
0x7fff5fbff610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x7fff5fbff620 01 00 00 00 00 00 00 00 58 f7 bf 5f ff 7f 00 00
0x7fff5fbff630 00 00 00 00
0848 ◆QZaw55cn4c 2012/02/11(土) 16:34:18.41
>>823
>アドレスに型はない。
ポインタには型はある。

>正確には、
正確ではない。

>何の型のポインタかによって、+1したときに進む大きさが違う。
それだけではない。*p としたときの値を取り込む範囲が異なる。
アラインメントなど触れておきたいことは多々あるが、この点が抜けているようでは正確とはいえない。
>>762 はその点も押さえている。
0849デフォルトの名無しさん2012/02/11(土) 16:35:26.94
ポインターのサイズはどのOSでコンパイルしてるかじゃなくて
何用のモジュールとしてコンパイルしてるかで決まるだろ。
コンパイラーオプションで選べるんじゃ無いの?

32ビット環境で64ビット用モジュールも書けるし
64ビット環境で32ビットプログラムも書けるだろ。

64ビットOSでも32ビットの仮想実行環境もあるし
32ビットOSでも仮想16ビット実行環境を用意してるのもある。
そういうOSなら、OSとは異なったビット幅のプログラムでも実行できる



0850785=7872012/02/11(土) 16:40:04.67
>>845 >>812-814は、>>842の修正を取り込んで実行してね。
>>842は%08xを%016xに修正する必要がありそうだけど。
dump()はsizeof(int)が8でも大丈夫なように修正。
void dump(void *p, int n)
{
int i;
unsigned char *data = (unsigned char *)p;

fprintf(stdout, "dumped start = %p\n", p);
fprintf(stdout, "%*s", 3 + sizeof(int) * 2, "");
for (i=0;i<16;i++){
fprintf(stdout, "%02x ", (unsigned int )(data + i) & 0x0f);
if ((i + 1) % sizeof(int) == 0) {
fprintf(stdout, "| ");
}
}
fprintf(stdout, "\n");

for (i=0;i<n;i++) {
if (i % 16 == 0) {
fprintf(stdout, "%p ", data + i);
}
fprintf(stdout, "%02x ", data[i]);
if ((i + 1) % sizeof(int) == 0) {
fprintf(stdout, "| ");
}
if ((i + 1) % 16 == 0) {
fprintf(stdout, "\n");
}
}
}
0851デフォルトの名無しさん2012/02/11(土) 16:42:01.88
>>849
普通gccデフォじゃ64bitコンパイルできないよ。
0852785=7872012/02/11(土) 16:45:28.43
>>847
dump_sizeが100なのは計算があわんと思ったけど、
>>835で
sizeof(int) = 4
って書いてたね。。。

ということで、、、
>>850のsizeof(int)と書いてる3箇所は sizeof(void *)に直して。。。
ごめんね。。。
08537302012/02/11(土) 16:46:31.98
>>849
なるほど、そういうことだったんですね
調べてみたら、コンパイラオプションを32bitに指定できるところがありました。
結果は、こうなりました。

sizeof(char) = 1
sizeof(char *) = 4
sizeof(int) = 4
sizeof(int *) = 4
sizeof(void) = 1
sizeof(void *) = 4
str = 0x1ee0, "abcdef"
p + 1 = 0x1ee1
p_int + 1 = 0x1ee4
p_void + 1 = 0x1ee1
0854デフォルトの名無しさん2012/02/11(土) 16:47:12.22
>851

-m32 -m64 じゃないの?

うちのLinux64bitだとデフォで64bitみたいだけど
0855785=7872012/02/11(土) 16:52:51.50
>>849
書けるをcompileできるにすれば話は通る。
08567302012/02/11(土) 17:03:17.88
>>852
あってるかな。。一応64bitでコンパイルし、dump結果は下記です。
もし必要であれば、最終ソースをcodepad等にあげていただければ、64bitでコンパイルして
結果をあげます。。

dump_size = 100, 0x00000064
dumped start = 0x7fff5fbff5d0
00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 0a | 0b | 0c | 0d | 0e | 0f |
0x7fff5fbff5d0 03 | 02 | 01 | 00 | 07 | 06 | 05 | 04 | 0b | 0a | 09 | 08 | 0f | 0e | 0d | 0c |
0x7fff5fbff5e0 04 | bb | 00 | 00 | 05 | ba | 00 | 00 | 06 | b9 | 00 | 00 | 07 | b8 | 00 | 00 |
0x7fff5fbff5f0 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 |
0x7fff5fbff600 18 | f6 | bf | 5f | ff | 7f | 00 | 00 | a4 | 07 | 00 | 00 | 01 | 00 | 00 | 00 |
0x7fff5fbff610 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 |
0x7fff5fbff620 01 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 58 | f7 | bf | 5f | ff | 7f | 00 | 00 |
0x7fff5fbff630 00 | 00 | 00 | 00 |
0857デフォルトの名無しさん2012/02/11(土) 17:04:21.31
いい加減ゴミを書くのやめろ。
0858785=7872012/02/11(土) 17:05:25.24
sizeof(char) = 1
sizeof(char *) = 4
sizeof(int) = 4
sizeof(int *) = 4
sizeof(void) = 1
sizeof(void *) = 4
str = 0x80485f0, "abcdef"
p + 1 = 0x80485f1
p_int + 1 = 0x80485f4
p_void + 1 = 0x80485f1
↑-m32をつけて32bit環境で実行。
32bit環境で-m64つけてcompileしようとしたら、
In file included from /usr/include/stdio.h:28:0,
from ary.c:1:
/usr/include/features.h:323:26: 致命的エラー:
bits/predefs.h: そのようなファイルやディレクトリはありません
コンパイルを停止しました。

って言われてもうた。
64bit環境で-m64つけてcompile後実行するとこんなんだった。
sizeof(char) = 1
sizeof(char *) = 8
sizeof(int) = 4
sizeof(int *) = 8
sizeof(void) = 1
sizeof(void *) = 8
str = 0x40075c, "abcdef"
p + 1 = 0x40075d
p_int + 1 = 0x400760
p_void + 1 = 0x40075d
intが64bitっていうのは嘘なの???
ちょっと混乱中。。。
0859デフォルトの名無しさん2012/02/11(土) 17:09:56.64
そのためのlongだろ。
0860785=7872012/02/11(土) 17:19:18.05
>>856
どうぞ。
http://codepad.org/V0maBlpJ
0861785=7872012/02/11(土) 17:25:36.16
>>859
ありがとう。
ほんとだった。
long は64bit扱いされているようだった。

$ gcc -m32 ptr.c -o ptr32 && ./ptr32
sizeof(int) = 4
sizeof(int *) = 4
sizeof(long) = 4
sizeof(long *) = 4
sizeof(void) = 1
sizeof(void *) = 4
str = 0x8048650, "abcdef"
p + 1 = 0x8048651
p_int + 1 = 0x8048654
p_long + 1 = 0x80485bd
p_void + 1 = 0x8048651

$ gcc -m64 ptr.c -o ptr64 && ./ptr64
sizeof(int) = 4
sizeof(int *) = 8
sizeof(long) = 8
sizeof(long *) = 8
sizeof(void) = 1
sizeof(void *) = 8
str = 0x4007ac, "abcdef"
p + 1 = 0x4007ad
p_int + 1 = 0x4007b0
p_long + 1 = 0x7fffa6940f28
p_void + 1 = 0x4007ad
08627302012/02/11(土) 17:35:46.23
>>860
ソースのアップどうもありがとうございます。
問題なく実行できているようです。
結果は、64bit環境をお持ちのようですし、>>857のこともあるので控えます。
0863デフォルトの名無しさん2012/02/11(土) 18:03:47.55
>>848
> ポインタには型はある。
おまえさっき、char *p がレジスタとか言ってたろ
そーゆーのを五十歩百歩つーんだよ
0864785=7872012/02/11(土) 18:11:59.82
>>862
了解。

ごめんだけど、dump_size以下は↓のように変更して。
64bit環境ではなんか32bit環境と違うaddressの取り方してるっぽい。
stackが逆に伸びていってた。

dump_size = sizeof(int) * 19 + sizeof(int *) * 2 + sizeof(int **) * 1;
fprintf(stdout, "dump_size = %d, 0x%08x\n", dump_size, dump_size);

fprintf(stdout, "ary_a\n");dump(ary_a, sizeof(ary_a));
fprintf(stdout, "ary_b\n");dump(ary_b, sizeof(ary_b));
fprintf(stdout, "ary_a_b\n");dump(ary_a_b, sizeof(ary_a_b));
fprintf(stdout, "pp\n");dump(pp, sizeof(pp));
0865785=7872012/02/11(土) 18:14:33.28
>>863
>>848は逃げ口上を用意しているから後で逃げれると思ってるようだよ。
「燃料投下もそろそろ潮時か」なんて書いておいて、
逃げの体制を確保できていると思っているらしい。
今後、誰からも相手にされなくなるだけなのに、
なんで分かんないんだろ。
0866 ◆QZaw55cn4c 2012/02/11(土) 18:45:52.20
>>865
逃げるもなにも、感じたことを書いているだけですが。

>今後、誰からも相手にされなくなるだけなのに、
初学者のお相手が務まればそれで十分。身のある話に絞っているつもりです。
だいたい解説側が codepad も使わずにだらだら書いているセンスに疑問を持っていますね。

>>863
まあこれは私の舌足らずが問題ですかね。

0867デフォルトの名無しさん2012/02/11(土) 18:47:11.09
> 今後、誰からも相手にされなくなるだけなのに、
今もこの板のほぼ全員からさげすまれている。

とっとと、訂正、謝罪を済ませて、電車に飛び込め。
> far を使おうが何をしようが、64KB の壁は
> 超 え ら れ な い
0868 ◆QZaw55cn4c 2012/02/11(土) 18:57:03.13
>>867
>とっとと、訂正、謝罪を済ませて、電車に飛び込め。
どこを訂正しろというんです?
0869デフォルトの名無しさん2012/02/11(土) 18:57:45.46
>>857
さげすまれてるというより、かなりウザがられてると思う
そしてウザがられてるのにも関わらずいつまでもしつこくレスを繰り返す

人のいやがることをやり続けるとか>>866はマジで精神異常じゃねぇの
0870デフォルトの名無しさん2012/02/11(土) 18:59:03.39
何をいまさら
0871デフォルトの名無しさん2012/02/11(土) 19:11:37.29
嫌がらせしかしない基地害はどこにでもいるもの。
0872デフォルトの名無しさん2012/02/11(土) 19:17:27.57
あぼーんされてたらわざわざ鳥外してたしなw
ただの荒らしww
荒らすことしかできない池沼www
0873デフォルトの名無しさん2012/02/11(土) 19:17:52.28
>>664
2GBもしくは3GBに壁があるよ。
0874デフォルトの名無しさん2012/02/11(土) 19:21:03.83
うるせーなー
そんなに確保せにゃならんて
設計に問題があるんだろ
低脳は引っ込んでよ
0875デフォルトの名無しさん2012/02/11(土) 19:22:00.44
誤)低脳は引っ込んでよ
正)低脳は引っ込んでろよ
0876デフォルトの名無しさん2012/02/11(土) 19:23:04.72
>>875
かわいいやつだなw
そこはいいだろ別にw
08777042012/02/11(土) 19:29:19.91
◆QZaw55cn4cとそれ以外の連中(865クズ連合なw)とで、どちらが高速なminmidmax()を書けるかで競え。
どっちが優秀かなんて一発で判定できるだろ。目に見えて明らかに判定できるだろ。

おれの予想だと◆QZaw55cn4cの圧勝だがな。
制限時間は深夜0時までの5時間やる。(こんなの5分で書けよwww)

◆QZaw55cn4c叩いてる奴の腕前にとくと期待してるわwww
08787042012/02/11(土) 19:31:04.97
逃げんなよ?www
0879デフォルトの名無しさん2012/02/11(土) 19:31:51.85
>>874
メモリのサイズの話?
Janeとかで大量に画像開くとその辺の壁に、、、わりとすぐぶつかるよね
0880デフォルトの名無しさん2012/02/11(土) 19:34:11.17
>>878
たぶん逃げられると思うけど、今のうちに自分が最速だと思うコードをcodepadとかに貼っておくといいよ。
後から貼っただろって言われなくてすむように。
0881デフォルトの名無しさん2012/02/11(土) 20:27:38.33
>>877
自分の仕事は自分でね。
できないなら最初から言うように。
0882デフォルトの名無しさん2012/02/11(土) 20:42:16.19
>>877 ←こいつ何なの? 何で競えとか言い出したの?
0883デフォルトの名無しさん2012/02/11(土) 20:44:00.65
>>877
クズ連合はいいけど、お前らクズ以下の連中の寄せ集めは何て呼べばいいのかな。
0884デフォルトの名無しさん2012/02/11(土) 20:46:07.34
アホみたいに遅いソースしか書けないクズが高速化とか、
なんの冗談だよw
0885デフォルトの名無しさん2012/02/11(土) 20:46:53.50
◆QZなんとかが叩かれてるのはコミュ障のゴミだからってのもある
何か能力があっても人に不快感を与えるゴミは社会に不要
社会に出てくるだけで迷惑なんだよ
0886デフォルトの名無しさん2012/02/11(土) 20:50:38.07
基地害「勝負だ、うへへ逃げるなよ」
一般人「ぎゃぁキチガイ」
基地害「逃げたなw俺の勝ちだw」

基地害=>>877を含むクズ以下の寄せ集め


こういう構図だろ。
ほっとけよ。
0887デフォルトの名無しさん2012/02/11(土) 21:08:29.43
なんとなく面白そうだからやってみなよ
(´ー`)y-~~
0888デフォルトの名無しさん2012/02/11(土) 21:39:06.91
877ってマジキチ?
0889デフォルトの名無しさん2012/02/11(土) 21:58:50.93
QZは自分のスレの速度勝負でボコボコにされてただろw
0890デフォルトの名無しさん2012/02/11(土) 23:09:42.19
そもそも問題としてすら成り立ってないところがすごいな。>>713
つーか、自分の仕事だろ?w
0891デフォルトの名無しさん2012/02/11(土) 23:15:23.36
>>704はあふぉさんなのかな?w
0892デフォルトの名無しさん2012/02/11(土) 23:19:03.63
そもそも日本語としてすらなってないねw
0893デフォルトの名無しさん2012/02/12(日) 01:22:49.65
最 高 に 高 速 に 書 けwww

こいつ最高にアホ↑AA略
0894デフォルトの名無しさん2012/02/12(日) 01:46:59.11
>>893
大抵のコードは最適化されてしまうので、彼は打鍵速度の事を言っているのではないの?
0895デフォルトの名無しさん2012/02/12(日) 02:04:03.03
打鍵速度が問題になる言語ってCOBOLくらいだろ…
0896デフォルトの名無しさん2012/02/12(日) 06:40:14.65
if((!A&&B&&C)||(A&&!B&&!C)||(A&&!B&&C)||(A&&B&&!C)||(A&&B&&C))


これって短くならないの?
0897デフォルトの名無しさん2012/02/12(日) 06:56:35.14
>>896
if((!A&&B&&C)||A)
0898デフォルトの名無しさん2012/02/12(日) 07:01:56.14
あるいはこれか。
if ((!A && !B) || (!A && !C))
0899デフォルトの名無しさん2012/02/12(日) 07:03:40.22
0と1間違えたw
>>897でおk。
0900デフォルトの名無しさん2012/02/12(日) 07:10:50.83
おっと、
A || (B && C)
でいけるんじゃないか?
0901デフォルトの名無しさん2012/02/12(日) 07:12:18.25
>>900
いけるね
0902デフォルトの名無しさん2012/02/12(日) 07:31:18.32
>>885
コミュ障のゴミでも能力があればそれなりに受け入れられる。
QZはコミュ障のゴミかつ無脳だから叩かれている。
0903デフォルトの名無しさん2012/02/12(日) 07:40:52.98
できた
0904デフォルトの名無しさん2012/02/12(日) 07:47:31.41
できた
0905デフォルトの名無しさん2012/02/12(日) 07:47:57.86
ひとりで
0906 ◆QZaw55cn4c 2012/02/12(日) 08:04:41.88
>>885
>人に不快感を与えるゴミ
受け手側の問題もあるのでは?

>>902
>コミュ障のゴミかつ無脳だから
×無脳
○無能
叩きの文章で漢字を間違えていては叩きにならない。

そういえば、「アスペルガー」とか「AHDH」とか言われたことがありますね。
調べてみるとどっちにも当てはまる私は重度の発達障害らしいですな。
0907デフォルトの名無しさん2012/02/12(日) 08:26:04.44
能力ないのは珍しいな。
向いてないんだろうね。
0908デフォルトの名無しさん2012/02/12(日) 08:42:43.14
能無しを超えた脳無しだから、あえて「無脳」と書いているのに
0909デフォルトの名無しさん2012/02/12(日) 08:50:50.74
>>907
天才と呼ばれている人たちの中にアスペ傾向が少なからずいるというだけで、
アスペが能力が高いという事ではないよ。
むしろ、QZのようなゴミカスの方が圧倒的に多い。
0910デフォルトの名無しさん2012/02/12(日) 08:53:43.05
> 受け手側の問題もあるのでは?

よく堂々と言い放てたな
自分を客観的に見れないのか
0911デフォルトの名無しさん2012/02/12(日) 09:07:13.40
アスペですから。
0912 ◆QZaw55cn4c 2012/02/12(日) 09:11:05.45
>>910
>自分を客観的に見れないのか
お互い様でしょう?
つ鏡
0913デフォルトの名無しさん2012/02/12(日) 09:23:07.10
>>909
極まれに超天才がいて、その人達はアスペだが、
アスペだからと言って超天才であるわけではない
ってことですね。
0914デフォルトの名無しさん2012/02/12(日) 09:26:59.80
>>912
お前のような脳無しがすこしでも他人の役に立てるのは宿題スレだけなんだから、
あそこから出てくんな。
ゴミ溜めで宿題丸投げのゴミクスを相手にしてろ。
0915デフォルトの名無しさん2012/02/12(日) 09:32:31.39
2つの条件、超天才、アスペ、において
超天才→アスペが成り立つとき
アスペは超天才であるための必要条件
超天才はアスペであるための十分条件という

超天才⇔アスペが成り立つとき
超天才はアスペ(アスペは超天才)であるための
必要十分条件という
このとき超天才とアスペは同値であるという
0916デフォルトの名無しさん2012/02/12(日) 09:32:56.59
>>914
宿題スレは能力を示す強者ぞろいだから、そこを QZ の場所といいきるのは本人のためにもよろしくない
0917デフォルトの名無しさん2012/02/12(日) 09:38:40.87
命題、超天才→アスペに対し
アスペ→超天才を逆
超天才でない→アスペでないを裏
アスペでない→超天才でないを対偶という

命題の真偽とその対偶の真偽は一致する
超天才→アスペが成り立つとき
アスペでない→超天才でないが成り立つ
0918デフォルトの名無しさん2012/02/12(日) 10:14:01.51
>>916
QZは改善の見込みのない障害者なんだから、本人のためとかどうでもいい。
宿題丸投げするようなゴミクズがQZの回答そのまま提出して不可になっても全然いい。むしろその方が社会のため。
そもそも宿題スレは宿題丸投げするゴミクズを隔離するためのスレなので、回答者はム板のゴミ処理ボランティアと割り切るべし。
ゴミ処理ボランティアなんだからゴミクズQZの相手もしろ。w
0919デフォルトの名無しさん2012/02/12(日) 10:22:26.53
QZ って有能なんだ‥‥‥
NG 外してみようかな‥‥‥
0920デフォルトの名無しさん2012/02/12(日) 10:47:01.79
>>919本人乙
0921デフォルトの名無しさん2012/02/12(日) 11:46:17.97
おまえら延々としょーもない話してんなぁ。ガキか。。
0922デフォルトの名無しさん2012/02/12(日) 11:51:26.55
>>921
トリップ外して、ご苦労。
宿題スレに引っ込んでろ。そこが唯一のお前の居場所だ。
0923デフォルトの名無しさん2012/02/12(日) 11:53:20.87
>>922
来ると思ったぜ、自演乙系レス
ちがうからな言っとくけど。。IDが出ないのがかなしい
まあ、管理者ならIP見れるからわかるだろうけど

そのへんにしとけよくだらない話は
0924 ◆QZaw55cn4c 2012/02/12(日) 11:58:57.52
ほんと、もうID板にしたいですよね。
0925デフォルトの名無しさん2012/02/12(日) 12:04:49.92
どうでもいいが>>896とかはクソな問題で有名な
3−SATの亜種じゃね?
0926デフォルトの名無しさん2012/02/12(日) 12:06:33.08
てか、ただの論理式の簡単化の話だろう。。
0927デフォルトの名無しさん2012/02/12(日) 12:11:31.52
QZって嫌がらせに来てるだけのゴキブリなんだから何言っても無駄っしょ
0928 ◆QZaw55cn4c 2012/02/12(日) 12:49:14.80
>>896
>>925
http://hibari.2ch.net/test/read.cgi/tech/1289715349/479 にかけると次のとおりとなりました。
http://codepad.org/J9fkSh7k
ここで D は無視すると

(B && C) || A

>>897 >>898 もうちょっと簡単にならないか?
0929デフォルトの名無しさん2012/02/12(日) 12:50:32.77
周回遅れのバカは黙ってろ
0930デフォルトの名無しさん2012/02/12(日) 12:57:00.33
>>928
>>900で一応出てはいるね
ソースは簡単化コード?入力はどうなってるの?
まあ、ソース読めって話なんだけどさ
0931 ◆QZaw55cn4c 2012/02/12(日) 13:01:37.76
>>930
遅かったか。これは失礼。
楽しんでいただいて光栄です。

>入力はどうなってるの?
475行目
static char *in[] = {"aBCD", "AbcD", "AbCD", "ABcD", "ABCD", NULL };
で指定します。今回は3入力なので、すべての項にDを附加しないと、このソースではうまく動作しません。


0932デフォルトの名無しさん2012/02/12(日) 13:10:29.64
>>931
なるほど。4入力対応版なのか
ソースじっくり読んで、アルゴリズム確認してみます
ありがとう。
0933デフォルトの名無しさん2012/02/12(日) 13:24:40.89
かるのーずっての描くと分かるらしい
0934 ◆QZaw55cn4c 2012/02/12(日) 13:27:32.01
>>933
>>928 はそれを地でべたべたどろどろと泥臭く地面を這いつくばる感覚でやっています。
0935デフォルトの名無しさん2012/02/12(日) 13:37:32.61
QZ の勝利か
まっこのスレの連中は宿題スレの常連にはかなわないってことだな
0936デフォルトの名無しさん2012/02/12(日) 13:39:46.03
勝利とかどうでもいいから、だからガキか?ってのw
0937デフォルトの名無しさん2012/02/12(日) 13:44:54.58
本人だろ、スルーしろよ。
0938デフォルトの名無しさん2012/02/12(日) 14:06:38.69
>>933

あれ分からん
0939デフォルトの名無しさん2012/02/12(日) 16:01:27.80
条件式の記述の場合は真偽どちらかに偏らせて考えるからアレあんまし関係ないんだよね
0940 ◆QZaw55cn4c 2012/02/13(月) 02:59:11.13
確かに本格派のクワイン・マクラスキー法では1, 0 の他、not care もありですね。
0941デフォルトの名無しさん2012/02/13(月) 03:53:26.77
コンパイルしたときに
�@でワーニングが出てしまう場合、どのような対処が必要でしょうか
�Aのようにしてもdata2はint型なのでエラーになってしまいますよね・・・
ちょっとコンパイル環境がないので、試すことができないのですが・・・
data2の変数の型を変えるしか方法はないでしょうか
どなたかご教授ください

�@ワーニングが出る場合
void foo(int data1){
int data2 = data1 * 100; // ワーニングがでます
}

�Aワーニングは出ない?
void foo(int data1){
int data2 = ((long int)data1) * 100; // ワーニングにならない?
}
0942デフォルトの名無しさん2012/02/13(月) 04:03:07.87
どんなワーニングなの?
張ってよ
0943デフォルトの名無しさん2012/02/13(月) 04:46:07.89
× ワーニング
○ ウォーニング
0944デフォルトの名無しさん2012/02/13(月) 05:34:57.90
× ワーニング
○ ウォーニング
◎ヲゥーヌィン
0945デフォルトの名無しさん2012/02/13(月) 06:38:34.76
ウヴォーギン
0946デフォルトの名無しさん2012/02/13(月) 06:46:20.47
日本と中国の二者択一を迫る米国
http://www.chosunonline.com/site/data/html_dir/2012/02/11/2012021100371.html

米国で大統領補佐官(国家安全保障担当)を務めたブレジンスキー氏は「韓国が米国との同盟を
強く望んだとしても、米国が韓半島から手を引く時代は少しずつ近づいている」と指摘する。

韓国には「中国による東アジアの覇権を受け入れ、中国とさらに接近する」道と、(反日行為をやめて)
「歴史的な反感にも関わらず、日本との関係をさらに強化する」という二つの道が選択肢として提示されていると明言した。

「中国に頼る」ということは、中国の付属品のように屈従して延命を図り、その下で生き延びるという意味だ。
「日本と手を結ぶ」ことについては、説明する必要もないだろう。

与党も野党も、あるいは右も左も関係なく、韓国のあらゆる政治勢力は、
この状況で5000万の国民をどちらの方向に導くか、決断を下さなければならない。


米国 「もう韓国は捨てるから、中国の植民地になるか、親日になり日本の植民地になるか選べよ」 ★3
http://engawa.2ch.net/test/read.cgi/poverty/1329035247/
0947デフォルトの名無しさん2012/02/13(月) 14:19:17.76
プログラム内で生成したヘッダーファイルをincludeする方法ってあるの
名前は固定しないとして
0948デフォルトの名無しさん2012/02/13(月) 14:22:53.76
再コンパイルしていいなら当然可能。
0949デフォルトの名無しさん2012/02/13(月) 14:41:34.99
そっか、サンクス
違う質問なんだが構造体でメンバの名前は違うんだけど型は同じだから、
その型のポインタを作って3番目のメンバなら*(a(構造体1番目メンバp)+2)とかで
やってみたんだけどできなかった
それぞれのメンバの名前じゃなくて機械的に参照したいんだけど
方法ないかな
0950デフォルトの名無しさん2012/02/13(月) 14:56:11.50
次のメンバまでの距離がおのおのの構造体間で異なる場合
単一の手段で参照するのは無理なんじゃないかな?
0951デフォルトの名無しさん2012/02/13(月) 15:09:23.00
>>949
http://msdn.microsoft.com/ja-jp/library/ms253935(v=vs.90).aspx
この辺の話。

でもそれ、何のためにやるんだろ。配列には変えられない?
0952デフォルトの名無しさん2012/02/13(月) 15:24:16.02
馬鹿だから配列には変えられません
0953デフォルトの名無しさん2012/02/13(月) 15:56:47.44
仕様が構造体って設定されているからできないんだよな
>>951
参考にしてみる
0954デフォルトの名無しさん2012/02/13(月) 15:59:08.40
そっか、ポインタ配列にそのメンバのポインタ入れていくことにするわ
解決した
0955デフォルトの名無しさん2012/02/13(月) 16:13:38.47
ああ。 1つの構造体だけの話だったのか。

メンバが全て同じ型ならポインタ配列でよいね。
違う型が含まれるようだと、ポインタから値を抜き出す時に対応する型に戻さないと意味ないから無理線だけど
0956デフォルトの名無しさん2012/02/13(月) 16:18:02.27
>>955
説明不足だった、すまぬ
0957デフォルトの名無しさん2012/02/14(火) 00:11:44.63
>>943-944
所詮カタカナではあらわせん、ここでも聴いてろ
http://dictionary.goo.ne.jp/leaf/ej3/93161/m0u/warning/
0958デフォルトの名無しさん2012/02/14(火) 00:13:30.76
×ワークマン
○ウォークマン
0959デフォルトの名無しさん2012/02/14(火) 00:15:20.88
ナルポ
0960デフォルトの名無しさん2012/02/14(火) 00:33:21.26
>>958
http://dictionary.goo.ne.jp/leaf/ej3/92983/m0u/walkman/
0961デフォルトの名無しさん2012/02/14(火) 00:37:14.55
iPhoneのSiriで"work"って認識してもらうの、俺にはなかなか難しかった。
0962デフォルトの名無しさん2012/02/14(火) 00:38:08.73
一般的な日本語英語カタカナ表記となにげに逆なんだよねwalkとwork

walk = w + al + k = ウァーク
wok = w + or + k = ウォァク

まあ、聴けw
http://dictionary.goo.ne.jp/leaf/ej3/92940/m0u/walk/
http://dictionary.goo.ne.jp/leaf/ej3/95418/m0u/work/
0963訂正2012/02/14(火) 00:39:01.07
walk = w + al + k = ウァーク
work = w + or + k = ウォァク

http://dictionary.goo.ne.jp/leaf/ej3/92940/m0u/walk/
http://dictionary.goo.ne.jp/leaf/ej3/95418/m0u/work/
0964デフォルトの名無しさん2012/02/14(火) 00:39:47.71
>>963
逆なのはお前だけ。
0965デフォルトの名無しさん2012/02/14(火) 00:41:09.48
>>963
一般的なカタカナ表記は下記だろう。。
walk = ウォーク
work = ワーク

でも実際はどっちかっていうと逆
0966デフォルトの名無しさん2012/02/14(火) 00:41:34.21
つかね、どっちねらって発音しても難しかった。
0967デフォルトの名無しさん2012/02/14(火) 00:44:26.32
×スターワーズ
○スターウォーズ

×ワールドウォートゥー
○ワールドワートゥー

あれ?
0968デフォルトの名無しさん2012/02/14(火) 00:47:56.27
>>967
http://dictionary.goo.ne.jp/leaf/ej3/81065/m0u/star+wars/
http://dictionary.goo.ne.jp/leaf/ej3/95572/m0u/World+War/
0969デフォルトの名無しさん2012/02/14(火) 00:49:40.51
>>965
は>>964の間違い
09709672012/02/14(火) 00:59:12.67
>>968
world war, world, war, w, わからん‥‥‥
0971デフォルトの名無しさん2012/02/14(火) 01:05:03.00
わからんやつはこれに従っとけ。
http://www.freeenglish.jp/jones-example.html
0972デフォルトの名無しさん2012/02/14(火) 01:06:05.07
>>970
world = wo + r + ld = ウォ + アぁ(る) + ルドゥ ※(る):巻き舌にするだけ



なんか限界を感じた。。。
0973デフォルトの名無しさん2012/02/14(火) 01:08:13.96
どうでもいい事には一生懸命に口を出すよなおまえら
0974デフォルトの名無しさん2012/02/14(火) 01:11:47.37
ばか、どーでもいくない
今はグローバルな時代だ
ソフト屋も例外ではない
0975デフォルトの名無しさん2012/02/14(火) 01:13:31.46
そうやってグローバルグローバル言ってるから複雑怪奇で生きるのが難しい世の中になったんだよ
社会もコードも小さなスコープで完結させることが人間にとって真の幸せにつながる
0976デフォルトの名無しさん2012/02/14(火) 01:14:14.54
俺は同意するぞ!
0977デフォルトの名無しさん2012/02/14(火) 01:14:38.88
確かに変数の過度なグローバル化は御法度だ
0978デフォルトの名無しさん2012/02/14(火) 01:18:05.53
>>974
おまえはエセ。
そういうやつはwarningと書く。
0979デフォルトの名無しさん2012/02/14(火) 01:19:11.23
>>978
Pardon me?
09809672012/02/14(火) 01:20:20.25
グローバルは嫌いです
0981デフォルトの名無しさん2012/02/14(火) 01:22:31.23
>>960
なんでコテ?
0982デフォルトの名無しさん2012/02/14(火) 01:23:46.73
>>981
What's you talking about?
0983デフォルトの名無しさん2012/02/14(火) 01:24:52.58
Damn it..
What're you talking about?...
0984デフォルトの名無しさん2012/02/14(火) 01:30:21.85
お前には無理www
0985デフォルトの名無しさん2012/02/14(火) 01:32:31.07
なにがwww
0986デフォルトの名無しさん2012/02/14(火) 01:35:12.47
お前がやろうと思ったことだよwww
0987デフォルトの名無しさん2012/02/14(火) 01:36:42.72
全くもって意味不明www
0988デフォルトの名無しさん2012/02/14(火) 01:38:19.95
お 前 が なwww
0989デフォルトの名無しさん2012/02/14(火) 01:39:03.02
www
0990デフォルトの名無しさん2012/02/14(火) 01:39:29.25
スターウォーズ

この'ー'の部分ってrの音が消えちゃって変な母音が挿入されてるみたいで違和感が
0991デフォルトの名無しさん2012/02/14(火) 01:40:16.04
>>990
どっちの'ー'?
0992デフォルトの名無しさん2012/02/14(火) 01:40:44.75
・−・
0993デフォルトの名無しさん2012/02/14(火) 01:41:14.61
^−^
0994デフォルトの名無しさん2012/02/14(火) 02:38:19.89
○ワークマン
http://www.youtube.com/watch?v=Oiedds6wMGw
0995デフォルトの名無しさん2012/02/14(火) 02:40:25.17
そもそも日本語にない音を無理矢理日本語の音に当てはめようとしてんじゃねーよ言語障害共
0996デフォルトの名無しさん2012/02/14(火) 02:46:50.04
などと意味不明な供述をしており、
0997デフォルトの名無しさん2012/02/14(火) 04:29:12.57
C言語なら俺に聞け(入門編)Part 97
http://toro.2ch.net/test/read.cgi/tech/1329161329/
0998デフォルトの名無しさん2012/02/14(火) 07:59:43.98
1000取った奴は24時間以内に即死亡
0999デフォルトの名無しさん2012/02/14(火) 08:08:59.82
Open Watcom
1000デフォルトの名無しさん2012/02/14(火) 08:09:57.09
QZ
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。