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

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
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/
2デフォルトの名無しさん:2012/02/04(土) 11:35:00.20
http://codepad.org/IzHZjtvA


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

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

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


あの、値渡しが上手くいかないんですけど、
どうすればいいでしょうか?
6デフォルトの名無しさん: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)
7デフォルトの名無しさん:2012/02/04(土) 14:16:33.88
つーかfiboの型はvoidじゃないか。
voidじゃなくてint *にして適当にreturnで返せば意図通りになるよ。
8デフォルトの名無しさん:2012/02/04(土) 15:17:27.77
なるよね
9デフォルトの名無しさん:2012/02/04(土) 15:29:24.92
呼び出しの順番がどうとか関係ないよね
10デフォルトの名無しさん:2012/02/04(土) 15:53:12.09
ないよね。
11デフォルトの名無しさん:2012/02/04(土) 15:58:21.51
Cには値渡ししかないけどな。
12デフォルトの名無しさん:2012/02/04(土) 18:36:36.21
関数引数の評価順序は規定されてないんだから
あんな書き方するもんじゃないよって事だよ

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

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

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

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

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

>>18
順番関係ないよ。
その2行目は曲解もはなはだしいけど
34デフォルトの名無しさん:2012/02/05(日) 03:20:08.84
>>27
ユーザ定義関数に引数で渡せば使える
35デフォルトの名無しさん:2012/02/05(日) 10:07:07.51
>>24
結果が正しいからOKって?
いや、まあ君がそれでいいなら別に言うことはないけど。
36デフォルトの名無しさん:2012/02/05(日) 15:01:40.90
>>35
どこが問題なの?
37デフォルトの名無しさん: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個ずつメモリに展開されるようになるんですか?
38デフォルトの名無しさん:2012/02/05(日) 15:45:04.03
そもそもhead.hに関数の定義をしてはいけない。
してしまったとしたら、その関数が外部リンケージならエラーになるはず。
ファイルリンケージなら、実体は複数できる可能性が高い。
39デフォルトの名無しさん:2012/02/05(日) 15:52:25.44
ありがとうございました
40デフォルトの名無しさん:2012/02/05(日) 16:17:02.29
>>37
>>38の補足になるけど

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

これがinline関数だとしたら処理がインラインに展開されることになり、
メモリは余計に食うことになる。
41デフォルトの名無しさん:2012/02/05(日) 16:25:37.68
よっぽど短い関数の場合だとインライン展開した方が小さい場合もあるけどな。
42デフォルトの名無しさん: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;
}

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

気になるのはdata[i].scoreはポインタを渡しているかってことかな。
44デフォルトの名無しさん: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文の中が表示されてしまうんですけどどうしたらいいですか?
45デフォルトの名無しさん: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)
46デフォルトの名無しさん:2012/02/05(日) 19:49:33.99
>>45
どういう理由で日本語通じないと言ってるのか、さっぱりわからんが、
>>24 で満足してるなら別にいいんじゃね。

別に君がどうなろうと、俺にとってはどうでもいいし。
47デフォルトの名無しさん:2012/02/05(日) 20:30:54.82
なんだ、まだ不定と未定義の区別もついてないのか。
それとも理解したくないのか。
48デフォルトの名無しさん:2012/02/05(日) 20:42:51.06
function(exp_a(), exp_b(), exp_c());
この評価順も不定だからダメと言いたいのだろうか。バカ丸出しだな。>>35
49デフォルトの名無しさん: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++);
を出すのはおかしい事に気づくはず
50デフォルトの名無しさん: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( ) の内容も示せずにレスする奴は、何も理解してない馬鹿。
51デフォルトの名無しさん:2012/02/05(日) 21:56:54.79
この場合重要なのは、一つの式の中で、副作用が発生する操作を二回行う
ということです。その結果は未定義なので、この printf がどのような値を表示
してもC言語の仕様としては問題ありません。極端な場合、ここでプログラムが
異常終了してしまっても問題ありません。
52デフォルトの名無しさん:2012/02/05(日) 22:17:54.47
>>51
>この場合重要なのは、一つの式の中で、副作用が発生する操作を二回行う
>ということです。その結果は未定義なので、

ダウト。

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

問題にすべきなのは、「同一オブジェクトに対して」副作用が複数回発生すること。
53デフォルトの名無しさん:2012/02/05(日) 22:22:15.96
もうただの揚げ足の取り合いだなw
54デフォルトの名無しさん: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もポインタになっているのは、わかるよね?
55デフォルトの名無しさん: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でのケースはそれなんだよ
56デフォルトの名無しさん: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;
}
57デフォルトの名無しさん:2012/02/05(日) 23:04:21.70
どの順序で呼ぶとか以前に
同じオブジェクトを1つの式中で変更するようなコードの動作は未定義なんでしょ?
58デフォルトの名無しさん:2012/02/05(日) 23:06:47.58
足りなかった&ちょっと言い方が違うか
同じオブジェクトを1つの式中で複数回変更するようなコードを実行すると
鼻から悪魔が飛び出すんでしょ?
59デフォルトの名無しさん:2012/02/05(日) 23:19:48.44
>>57
関数呼び出しの引数並びは「一つの式」じゃありませんが。

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

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

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

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

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

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

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

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

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

あ、すみません質問は事故解決しました
108デフォルトの名無しさん:2012/02/06(月) 23:43:06.17
ターミナルでgcc打ってるレガシーな感じでCの勉強してるのかな?
109デフォルトの名無しさん:2012/02/06(月) 23:55:33.61
xcodeのiPhoneアプリやMac用ソフトとかのテンプレの中にcのテンプレがありますねん
メモリ2Gくらい使うソフトでやってるからレガシーではないですな
110デフォルトの名無しさん: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)
もちろん両方ともに処理系としては正しい動作。
そもそも式がダメなのに、それに含まれる関数の引数評価に副作用完了点があると思えるなんて馬鹿すぎる。
111デフォルトの名無しさん:2012/02/07(火) 00:05:40.28
まだほざいてるのかよ。
誰も引数の評価ごとに完了点があるなんて言ってねーよ。
112デフォルトの名無しさん:2012/02/07(火) 00:06:24.95
a++の代わりにadd1(&a)とかにしてみろよ。
113デフォルトの名無しさん:2012/02/07(火) 00:14:26.36
やたら3項演算子使いたがるよね、自称玄人プログラマはw
114デフォルトの名無しさん:2012/02/07(火) 00:15:30.95
まぁ普通は低レベルに合わせないといけないから禁止されてるからそのせいだろw
115デフォルトの名無しさん:2012/02/07(火) 00:17:41.25
3項演算も禁止しなきゃならないぐらいヘボグラマしか居ない環境でまともなアプリケーションなんて作れるの?
116デフォルトの名無しさん:2012/02/07(火) 00:18:30.88
まぁお前も含めて大抵のとこはそんなもんだよ。
117デフォルトの名無しさん:2012/02/07(火) 00:18:37.62
>>4のソースとかニヤニヤしちゃう
118デフォルトの名無しさん: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);
}

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

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


慣れればフツーに読めるだろ、低能には無理だろうがな
とか言い出す玄人()が出てきそうなネタだね
132デフォルトの名無しさん:2012/02/07(火) 01:20:46.78
むしろ3項のほうがすっきりして読みやすいと思うんだけど
133デフォルトの名無しさん:2012/02/07(火) 01:22:18.38
カンマ式混ぜると痛い事に成るしな
134デフォルトの名無しさん:2012/02/07(火) 01:23:15.94
>>131
そう? (cond) に対応して便利と思わない?
135デフォルトの名無しさん:2012/02/07(火) 01:39:11.04
>>134
ん?どゆこと?
136デフォルトの名無しさん:2012/02/07(火) 01:45:03.81
で、どこに自称玄人プログラマがいるんだ?
色々禁止してやらないとダメな>>115のようなヘボグラマしかいないようだが。
137デフォルトの名無しさん:2012/02/07(火) 02:08:06.07
>>136
そういうあなたは?
138デフォルトの名無しさん:2012/02/07(火) 02:11:15.72
質問には質問で返す。
典型的なヘボ。
139デフォルトの名無しさん:2012/02/07(火) 02:13:56.08
これを俗にブーメランというのだよ >>136
140デフォルトの名無しさん:2012/02/07(火) 02:14:24.49
そして論点をずらす。
141デフォルトの名無しさん: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;
}
142デフォルトの名無しさん:2012/02/07(火) 03:31:12.45
fatal error RC1015: cannot open include file 'l.jpn\windows.rc'.

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

どうすれば解決しますか?
143デフォルトの名無しさん:2012/02/07(火) 03:41:43.09
>>126
それに慣れるとPHPでびっくりするからやめたほうがいいよ
144デフォルトの名無しさん:2012/02/07(火) 06:06:31.80
おまいら、教えてくれ
page faultの許容ってどんくらい?
process explorerで測定したら2000くらい。
バッチプログラムなんだけど、バッチで2000って多いですか?
145デフォルトの名無しさん:2012/02/07(火) 06:30:04.04
スレ違い。
146デフォルトの名無しさん:2012/02/07(火) 06:49:49.88
int x = 0;
printf("%d %d", ++x, ++x);
147デフォルトの名無しさん:2012/02/07(火) 08:28:54.91
>>141
もはやあほだろ。。
148デフォルトの名無しさん: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;
}
149デフォルトの名無しさん:2012/02/07(火) 10:10:42.09
150デフォルトの名無しさん: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;
}
151デフォルトの名無しさん: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; }
152デフォルトの名無しさん:2012/02/07(火) 15:46:57.40
C言語のプログラムレポート15個中3個提出しなかっただけで3段階評価で
Cだった...8割出してC(可)ってありえないだろ。ふつうはAだよな。
みなさんどう思う?
153デフォルトの名無しさん:2012/02/07(火) 15:53:13.11
3段階評価ならCって不可じゃねーの?普通

3段階なら、全提出でB、内容がマトモでAだな
提出してないのはCでも文句言えないだろ
154デフォルトの名無しさん: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に満たない程度の出来だったと判断されたんだろ
155デフォルトの名無しさん:2012/02/07(火) 15:55:05.69
パンデモニウムさんは可愛いけど声がイラつく
156デフォルトの名無しさん:2012/02/07(火) 16:03:32.42
>>154
専門科目が6割以上合格ってどんだけ昔の考え?
157デフォルトの名無しさん:2012/02/07(火) 16:08:14.75
A 優
B 良
C 可

D 不可

だろw

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

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

>>162
教授次第だけど1/3以上未提出なら普通はDになるんじゃないかな
164デフォルトの名無しさん:2012/02/07(火) 17:02:21.17
むしろ全部提出してる奴は少ないからな。必修なら落とされないと思う。
165デフォルトの名無しさん:2012/02/07(火) 17:10:40.98
そういや私の通ってた大学も(頭が)足りないやつは追加提出させられてた気がするな
必修ならほぼ落とすことは無いか
166デフォルトの名無しさん:2012/02/07(火) 17:25:23.02
選択がないので1つでも落すとアボン。
167デフォルトの名無しさん:2012/02/07(火) 17:31:58.14
落とされない大学なんぞに意味はないな。
168デフォルトの名無しさん:2012/02/07(火) 17:57:20.43
情報系じゃなかったけど
レポート半期で12本初回抜き打ち試験中間試験定期試験とか当たり前のようにやって
全部提出出席しても試験でしくじって落とされるやつがちらほらいて地獄絵図だった
後輩にはうちの大学には絶対に来るなと忠告したよ
169デフォルトの名無しさん:2012/02/07(火) 18:34:08.84
何の為に大学に行ってるの?
170デフォルトの名無しさん:2012/02/07(火) 18:35:02.15
行かないと社会が人間扱いしてくれないからとりあえず
171デフォルトの名無しさん:2012/02/07(火) 18:43:35.47
>>168
普通だろそれ
172デフォルトの名無しさん:2012/02/07(火) 18:53:04.52
必修だから落とされないとか、そんな世の中なの?
173デフォルトの名無しさん: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){
174デフォルトの名無しさん: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の記述は、どの様にしたらよろしいでしょうか?
175174:2012/02/07(火) 19:03:24.76
int data[177][23]の実体はfunc1()が持ち、
他の関数からその中身を参照にしたいのです(グローバル変数使用不可)

宜しくお願い致します。
176デフォルトの名無しさん:2012/02/07(火) 19:06:05.04
> 関数func()内で
177デフォルトの名無しさん:2012/02/07(火) 19:07:47.55
mallocを使うか根本的なところから見直す
178デフォルトの名無しさん: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];
}

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

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

※私に与えられてる権限としては、func1の引数の変更、func2の製作
180デフォルトの名無しさん:2012/02/07(火) 19:18:57.51
ゴミコード発生の瞬間である。
181デフォルトの名無しさん:2012/02/07(火) 19:20:25.28
やりたい事がさっぱり分からん
エスパー待ち
182デフォルトの名無しさん:2012/02/07(火) 19:25:29.62
その実装だと誤動作するよ。自動変数で調べてね。
以下のいずれかの修正をしてもらう必要がある。
@
void getData(*****) {
. static int data[N][M];
}
Aソースを分割して、
static int data[N][M];
void getData(*******);
B
malloc つかう。
183174:2012/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);
}
184デフォルトの名無しさん:2012/02/07(火) 19:31:48.22
>>181
知りたいのは、「2次元配列のポインタのポインタ」を引数に渡してアドレスを入れてもらう
やり方です
185デフォルトの名無しさん:2012/02/07(火) 19:43:35.47
@int*** value
A*value
Bint** data
C&data
で、できると思うけど、何がやりたいのかは知らないし、あまりよくないコードな気がする。
やりたいこと書いて代案出してもらったほうがいいと思うけど、まあ、とりあえず。
186デフォルトの名無しさん:2012/02/07(火) 19:53:39.40
ローカルstaic変数のアドレスを取るとかグローバルと大差ないわ
いや、グローバルはグローバルだって意識できるからまだいいけど
これじゃあソレもできないから最低最悪だな
187デフォルトの名無しさん:2012/02/07(火) 20:40:54.32
静的なオブジェクト/動的なオブジェクト(free必要)
これ以上の情報を意識する必要はないし、意識しなけりゃならないのは最低最悪。
グローバル? 今時使わないよね。w
188デフォルトの名無しさん:2012/02/07(火) 20:44:17.33
質問
関数って引数は何個までとか何バイトまでにした方が良いってのはある?
ある程度を超えるとメモリに積む作業が増えるので急激に遅くなる、とか。
大差無いのかな。
189デフォルトの名無しさん:2012/02/07(火) 20:49:42.42
そんなことを気にするのはお前には早すぎるよ。
190デフォルトの名無しさん:2012/02/07(火) 20:54:56.96
>>187
こいつ最高にアホ
191デフォルトの名無しさん:2012/02/07(火) 20:59:26.69
>>189 初心者は速度を気にしちゃいけないなんて決まりがあったのか。
知らなかったわ、すまん。
192デフォルトの名無しさん:2012/02/07(火) 21:03:19.05
>>188
変数固めて構造体にして、ポインタで渡す
俺なら
193はちみつ餃子 ◆8X2XSCHEME :2012/02/07(火) 21:03:52.10
>>188
パフォーマンスへの影響は環境によるので実測しないとなんとも言えないけど、
計算量的によほど厳しい条件下でなければはっきりわかるような差は出ないよ。
回数が多く呼ばれる関数ならちょっとした差が全体に多きく影響することもあるけど、
どこまで許容できるかは程度問題なのでスパッと基準を決められるものではないな。
194デフォルトの名無しさん:2012/02/07(火) 21:07:52.89
問題になるまでほっときゃいい
腐りだしたら破棄して作りなおしゃいい
ダしゃいいタマがうずくなら
195デフォルトの名無しさん:2012/02/07(火) 21:09:28.84
>>191
決まりではないが鉄則ではある
196デフォルトの名無しさん:2012/02/07(火) 21:10:39.31
>>188
大雑把に1KB以下なら気にしなくていい
197はちみつ餃子 ◆8X2XSCHEME :2012/02/07(火) 21:12:29.93
>>192
Windows API はそういう感じだね。

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

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

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

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

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

こんな感じか
237デフォルトの名無しさん:2012/02/08(水) 00:45:03.52
またヘボがわけのわからんもの出してきたな…
238デフォルトの名無しさん:2012/02/08(水) 00:46:48.19
>>237
えっ?おまえが書いたんじゃなかったの?w >>236
239デフォルトの名無しさん:2012/02/08(水) 00:50:26.07
なんだ、英文のがよっぽどまともじゃないか。
http://en.wikipedia.org/wiki/High-level_programming_language
240デフォルトの名無しさん:2012/02/08(水) 00:51:27.59
低級高級なんて感覚的なもんにちゃんとした定義があると思ってるのか
ハードウェアよりであれば低級
Cが高級だったのは昔の話
241デフォルトの名無しさん: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.
242デフォルトの名無しさん:2012/02/08(水) 00:55:04.67
>>239
翻訳してるだけじゃねーか
しかもTalkで議論されてるw
243デフォルトの名無しさん:2012/02/08(水) 00:56:59.15
激しく
ど う で も い い
244デフォルトの名無しさん:2012/02/08(水) 00:57:06.02
>>242
いやいや、翻訳しただけだよもちろん、そう書いてあるよってだけだからw
245デフォルトの名無しさん:2012/02/08(水) 00:58:13.06
あ、>>242>>241に対して言ってるのかと思った
>>244は無視して
246デフォルトの名無しさん:2012/02/08(水) 00:59:55.63
>>243

一般に低水準(低級)言語と言った場合は機械語かアセンブリ言語を指す
247デフォルトの名無しさん:2012/02/08(水) 01:16:48.07
248デフォルトの名無しさん:2012/02/08(水) 01:21:06.85
www
249デフォルトの名無しさん:2012/02/08(水) 01:27:33.93
変数が多く、重い様に感じます
どのようにすれば軽くなりますか?
また、ifよりswitchを使用したほうが重くなるのでしょうか?

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

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

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

理解したwww

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


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

index = w;

index << 3;

index &= z

index *= ofset-of-functions

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

index << 3;

index |= z

address = addres_table[index];

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

速度にクリティカルなプログラムを書くなら、ifかswitchなどにこだわるより、
メモリーアライメントなどをよく勉強して効率のよいデーター構造は何かなどを
意識した方が良い。
286デフォルトの名無しさん:2012/02/08(水) 06:22:05.47
printf()が問題になるようならそもそもの設計が間違ってるけどな。
287デフォルトの名無しさん:2012/02/08(水) 06:41:44.73
>>249の無駄な判定には誰も突っ込まないところが凄いw
288デフォルトの名無しさん:2012/02/08(水) 06:47:20.88
それはprintf()にくらべたら無視できる。
289デフォルトの名無しさん:2012/02/08(水) 06:49:27.90
それにロジックは>>257で解決してんじゃねーか?
290デフォルトの名無しさん:2012/02/08(水) 07:00:04.96
>>257>>249よりマシだけど無駄判定じゃねーかw
291デフォルトの名無しさん:2012/02/08(水) 07:15:31.95
じゃぁprintf()1回で模範回等頼んだ>>290
292デフォルトの名無しさん: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" : "");
293デフォルトの名無しさん:2012/02/08(水) 07:34:32.99
これでどや。
http://codepad.org/yNjC44pw
294デフォルトの名無しさん:2012/02/08(水) 08:07:27.08
ロジック以前に、無理矢理な三項演算とカンマつなぎをどうにかしろw
295デフォルトの名無しさん: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さんが特に気に入っているのは必要なものがすべて揃う「ダイソー」だそうで、売られている多くの商品に日本語の説明書きがあるため、
やはり自分が日本にいるような錯覚に陥るのだと述べた。(編集担当:新川悠)
296デフォルトの名無しさん:2012/02/08(水) 08:36:01.09
三項演算子とカンマ演算子に狂ったように固執してるやつが
初心者に糞ソースを常駐解答するスレです
297デフォルトの名無しさん:2012/02/08(水) 08:52:27.65
日本は近い将来放射能と首都崩壊で消えてなくなるから
いまのうちにもっとたくさん台湾に日本の文化を継承してもらいたいね
298デフォルトの名無しさん:2012/02/08(水) 10:25:43.54
299デフォルトの名無しさん: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;
}
300デフォルトの名無しさん:2012/02/08(水) 10:57:18.21
速度を気にする時に%なんて使うもんじゃないよね。
301デフォルトの名無しさん:2012/02/08(水) 10:59:52.60
%やめて速度を気にするのなら、条件判定についてもちゃんと考えるべきだよねw
302デフォルトの名無しさん:2012/02/08(水) 11:30:26.34
>>299
printfに奇数アドレス指定すんなスットコドッコイ
303デフォルトの名無しさん:2012/02/08(水) 11:44:50.19
>>302
char *にそんな制限ないよ。
304デフォルトの名無しさん:2012/02/08(水) 13:38:48.75
>>302
printfにそんなしばりねーわ、このタコ。
お前1回休みな。
305デフォルトの名無しさん:2012/02/08(水) 13:56:39.73
特殊な環境なのかね?
奇数アドレスの参照発生で例外投げるとか、ペナルティで遅くなるとか
306デフォルトの名無しさん:2012/02/08(水) 13:58:47.54
奇数アドレスからのワードアクセスかなんかと勘違いしてるんだろ。
今時奇数アドレスって言うのもアレだけどな。
307デフォルトの名無しさん:2012/02/08(水) 14:15:22.32
いやいや、速度の話してるんだから
関数に渡すポインターのアドレスはCPUのメモリーアクセスアライメントに合わせろよ(w
memcpyのasmソースよく見ろって
308デフォルトの名無しさん:2012/02/08(水) 14:26:49.84
意味無し。
309デフォルトの名無しさん:2012/02/08(水) 14:31:05.98
>>307
なんでmemcpyが出てくるんだよ。
どうせならprintf()のソースを見ろよ。
310デフォルトの名無しさん:2012/02/08(水) 14:34:20.51
開始アドレスを整列させても、どうせ全部スキャンするんだから、
影響なんてあるわけがない。
311デフォルトの名無しさん:2012/02/08(水) 14:36:37.54
アライメントとかそのへんの単語を最近覚えて使いたくてしょうがなかったんだろ
駆け出しの頃にはよくある病気だから暖かく見守ってやりなよ
312デフォルトの名無しさん:2012/02/08(水) 14:37:54.61
memcpy は block move で済むからアドレッシングによる差が出るだろうけど

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

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

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

private m(){}

private b(){}


}

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

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

324デフォルトの名無しさん:2012/02/08(水) 17:09:16.85
>>323
自分がアホすぎて悲しい
ありがとうございました
325デフォルトの名無しさん: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){}
326デフォルトの名無しさん:2012/02/08(水) 17:11:12.60
>>322
, が足りない
327デフォルトの名無しさん:2012/02/08(水) 20:02:44.62
128ビット16進数の乱数をつくるにはどうすればいいですか?
328 ◆QZaw55cn4c :2012/02/08(水) 20:21:27.74
>>327
32bit 乱数を出力してくれる系ならそれを 4つ組み合わせればよい。
それでだめな乱数もあるが、メルセンヌツイスタならほぼOKだ。

ggr メルセンヌツイスタ
329デフォルトの名無しさん:2012/02/08(水) 20:23:31.78
ほぼだってw
330デフォルトの名無しさん:2012/02/08(水) 21:36:00.84
最近ようやくメルセンヌツイスタって言葉を知ったので使いたくてしょうがなかったんだな
331デフォルトの名無しさん:2012/02/08(水) 21:55:45.18
最近は、ハード的に物理乱数生成するマイコン(SoC)あるから
それ使えるならそれがベストだ
332デフォルトの名無しさん:2012/02/08(水) 21:56:41.37
ベストじゃねーよカス
333デフォルトの名無しさん:2012/02/08(水) 21:57:03.64
あ、しまったここPC板だったw
ついつい組み込みの考えでレスを。。
334デフォルトの名無しさん:2012/02/09(木) 00:30:19.61
もう、ivy bridge専用でいいよ。
335デフォルトの名無しさん:2012/02/09(木) 03:00:15.30
最近知ったんだねっていうと昔から知ってますっていうからやめといたほうがいい
336デフォルトの名無しさん:2012/02/09(木) 03:06:16.66
お互い顔見えないからハゲとノノシるとフサフサですと言い返すみたいなもんだな
337デフォルトの名無しさん:2012/02/09(木) 03:08:03.77
ハゲはだまってろ。
338デフォルトの名無しさん:2012/02/09(木) 03:17:39.71
>>333
PC…板?
339デフォルトの名無しさん:2012/02/09(木) 05:18:17.37
▼PC等
340デフォルトの名無しさん:2012/02/09(木) 07:00:00.33
>>335
最近身にしみたんだね。
341デフォルトの名無しさん:2012/02/09(木) 07:34:21.88
C 言語においてmain 関数が正常終了する際にexit(0); を実行し,異常終了する際にはexit(1);
を実行することがある
なぜかわかる方いますか?
342デフォルトの名無しさん:2012/02/09(木) 07:39:51.13
>>338
pcカテだようるさいなぁ。。
343デフォルトの名無しさん:2012/02/09(木) 07:46:40.44
>>341
スタートアップルーチンがそうなっているんだろ。お前のところではな。
344デフォルトの名無しさん: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日間つまづいています。
どなた様か、よろしくご教授ください。
345デフォルトの名無しさん:2012/02/09(木) 08:33:35.19
日本語もまともに使えないヴァカには無理
C言語とか以前の問題
プログラムの前に日本語を5年ほど勉強してこいゴミ
346デフォルトの名無しさん:2012/02/09(木) 08:35:45.59
>>344
問題が再現するコンパイル可能な最小のコードを示せ
347デフォルトの名無しさん:2012/02/09(木) 08:42:58.05
>>344
free(kozo)はループに入れちゃいかんだろ。
つーか、sizeof(KOZO)とsizeof(kozo[i])が混在していてうざい。
348デフォルトの名無しさん:2012/02/09(木) 08:43:32.81
calloc()とmalloc()+memset()が混在しているのもダメダメだな。
349デフォルトの名無しさん:2012/02/09(木) 08:44:36.55
>>347
お前の答え方のほうがよっぽどうざいよ。
350デフォルトの名無しさん:2012/02/09(木) 08:45:07.16
>>347
ちゃんと読め
351デフォルトの名無しさん:2012/02/09(木) 08:45:31.33
そういうおまえはもっとうざい。
352347:2012/02/09(木) 08:47:58.17
>>350
おっと、確かに。

>>344
こりゃ失礼。そのコード断片ではあってそうに見える。なので、>346。
353デフォルトの名無しさん:2012/02/09(木) 08:52:53.87
もっと回答者の身になって分かりやすい回答を心がけろ。
まだコードを直せるまともな回答が出てないぞ。
354350:2012/02/09(木) 08:54:26.89
>>351
お前に言われる筋合いはねーよ池沼
355デフォルトの名無しさん:2012/02/09(木) 08:55:13.21
>>353=糞
356デフォルトの名無しさん:2012/02/09(木) 08:57:16.61
>>346
示してますよ?
何で答える人ってそうやって命令口調なんですか?
357デフォルトの名無しさん: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]));
}
*/
}
358デフォルトの名無しさん:2012/02/09(木) 09:05:15.08
>>354
お前は>>350じゃねーだろw
359デフォルトの名無しさん:2012/02/09(木) 09:08:49.96
>>356
お前の態度がそうさせる。
360344:2012/02/09(木) 09:10:55.59
みなさん、早速ありがとうございます。
「再現可能な最小コード」を用意しようとして
途中の構造体のメンバ処理などをザックリ切り取ってみましたが、
それではエラーの再現はありませんでした。

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

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

ありがとうございます。
ちょっと進展しました。
363デフォルトの名無しさん:2012/02/09(木) 09:28:15.80
コードというよりこいつの脳の問題
364デフォルトの名無しさん:2012/02/09(木) 09:29:36.12
>>344頭悪すぎワラタw
よく恥ずかしくないなw
365デフォルトの名無しさん:2012/02/09(木) 09:33:48.47
大丈夫。下には下がいる。>>50とか
366デフォルトの名無しさん:2012/02/09(木) 09:34:39.62
>>362
「確かに」じゃねーよゴミ
知っててできないのは入門者とか以前の問題
仕事でも知っててミスする奴は不要
社会の負担になるだけだから出てくんなよ
367デフォルトの名無しさん:2012/02/09(木) 10:11:55.39
お前がな。
368デフォルトの名無しさん:2012/02/09(木) 10:33:03.35
オマエモナー
369デフォルトの名無しさん:2012/02/09(木) 11:19:57.46
基地害の方はお引き取りくださいm(__)m
引き取るのは息でも結構ですm(__)m
370デフォルトの名無しさん:2012/02/09(木) 11:38:30.18
>>369
死ねゴミ
371デフォルトの名無しさん: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);
}
372デフォルトの名無しさん: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)を
最も高速なアルゴリズムで書いてください。

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

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

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

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

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

って書くけど。
394デフォルトの名無しさん:2012/02/09(木) 15:53:15.02
calloc()使えばmemset()いらんだろ。
395デフォルトの名無しさん:2012/02/09(木) 15:54:54.03
どうせ後でまた初期化すんだから0クリアとか無意味だろ
最初からコンストラクタ作ってそれで初期化しろよザコども
396デフォルトの名無しさん:2012/02/09(木) 16:02:06.98
どうせ後から初期化とかお前の妄想だろw
誰か一言でも後から初期化するって言ったか?w
お前痛いよwwwww
397デフォルトの名無しさん:2012/02/09(木) 16:06:07.28
calloc()も知らないやつがレスするな。
398デフォルトの名無しさん:2012/02/09(木) 16:16:11.45
カロック
399デフォルトの名無しさん:2012/02/09(木) 16:19:01.31
本当に>>50はダメな奴だな。
400デフォルトの名無しさん: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に成っている。
401デフォルトの名無しさん:2012/02/09(木) 17:32:16.93
単に端末がUNICODE使えないからじゃないの?
402デフォルトの名無しさん:2012/02/09(木) 17:51:08.74
うるさい
403デフォルトの名無しさん:2012/02/09(木) 17:52:40.81
文字コードも分かんないアホはC言語使うなクズ
いっしょう端末のウンコしてろ
404デフォルトの名無しさん:2012/02/09(木) 17:55:48.72
日本語でおk。
405デフォルトの名無しさん:2012/02/09(木) 18:09:23.07
>>401
unicodeを引数に出来ないだけか…。
dirをすると 〜.txt は表示されるのにな。
406デフォルトの名無しさん:2012/02/09(木) 18:35:46.62
文字コードで躓く奴にプログラミングは向いてない。
407デフォルトの名無しさん:2012/02/09(木) 18:39:32.52
俺は文字コードよりlocaleがよくわからない
なんなんだよこれ
408344:2012/02/09(木) 19:34:41.95
自己解決しました。
メンバ処理のなかで、構造体ポインタを入れ替える処理があったのですが
不要になったポインタをNULLしてなかったのが原因のようです。
mallocした時点とfree()する時点では、ポインタ配列の構成が違ってました。

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

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


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

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

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

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

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

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

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

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

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

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

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

今となっちゃあもうどうでもいい話
知らなくて当然
簡単に言えばゲタはかせましょう……とからしい
453デフォルトの名無しさん:2012/02/10(金) 02:04:28.27
変わるからsizeofで取れって話だろ。
ほんと、頭悪そうだな。
454デフォルトの名無しさん:2012/02/10(金) 02:06:48.29
nearぽいんたーはDSセグメントレジスターが一致してないアド
455デフォルトの名無しさん:2012/02/10(金) 02:10:53.38
nearポインターはDSレジスターが一致してるモジュール間でしか参照できないよ。
farポインターはセレクター情報があるのでグローバルに参照できるけど、
64kBを超えるメモリーブロックはhugeポインターで宣言してコンパイラーに
面倒見てもらうんんだよ
456デフォルトの名無しさん:2012/02/10(金) 02:15:06.46
でも、hugeポインター宣言するとすごく処理が遅くなるから、
普通はfarポインターまでにしてメモリー割り当ては64Kで制限して
自分でデーター構造の設計を工夫するよ。
457はちみつ餃子 ◆8X2XSCHEME :2012/02/10(金) 02:18:30.44
>>451
簡単に言うと昔はメモリがいくらかの塊の集合で扱われてたと思いねぇ。
塊の中では小さい情報量で位置を示せるけど、
別の塊を参照するにはどの塊の中のどの位置っていう情報が要るから
ちょっと大きい情報量になる。
458デフォルトの名無しさん:2012/02/10(金) 02:21:19.04
なるほど
ページとオフセット指定する的なあれか
同じページならオフセットだけみたいな
459デフォルトの名無しさん:2012/02/10(金) 02:30:16.97
hugeってふげじゃなくて、ひゅーじって読む?
ほげ野郎、どうだ?
460デフォルトの名無しさん:2012/02/10(金) 02:31:07.09
Cなんて余裕とか思ってるやつほど、Cの多彩な表現を知らない
C#でソフトかけて、わかったような気になってる子は哀れ
461デフォルトの名無しさん:2012/02/10(金) 02:35:15.87
462デフォルトの名無しさん: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の制限を超える)構造を取っていたものも多い。
463デフォルトの名無しさん:2012/02/10(金) 03:02:28.90
成仏しろよおっさん
464デフォルトの名無しさん:2012/02/10(金) 03:34:23.97
って言うか、Windows95がでるまでは、パソコンプログラムって16bitだったんだから
当時中学生位なら、今でもギリで20代じゃね?
465デフォルトの名無しさん:2012/02/10(金) 03:39:08.52
>>460
天才でもなければ、人間の容量なんて上限あるし、
いろんな言語を高レベルに理解するなんて到底不可能。
特に職業でプログラム書いてるなら、困らない程度にかければ問題ない。
466デフォルトの名無しさん:2012/02/10(金) 03:50:23.83
>>464
near、farポインタ以降の知識があれば話題にするはずが無い。
学習した最終地点がその辺りでそこから進歩してないと言うことだ。
467デフォルトの名無しさん:2012/02/10(金) 04:22:57.83
これがクソコテの自演である。
>>451=457
468デフォルトの名無しさん:2012/02/10(金) 10:50:40.92
本棚から「Cの解法と設計」って分厚いのを発掘した。
469デフォルトの名無しさん:2012/02/10(金) 17:55:45.30
うん
470デフォルトの名無しさん: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
471デフォルトの名無しさん: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);
}
}
}
472デフォルトの名無しさん:2012/02/10(金) 19:03:21.75
このゴミ何なの?
473デフォルトの名無しさん:2012/02/10(金) 19:06:07.83
前スレ500近辺でも暴れてたヤツだな
どうしても書き込みしたいなら以後はコテ付けるようにしような
474471:2012/02/10(金) 19:11:06.18
ちなみにこれ5分で書いたわw
475デフォルトの名無しさん:2012/02/10(金) 19:14:50.46
構想5年 が抜けてるぞ
476471:2012/02/10(金) 19:20:25.15
三角関数を使ってどうたら言ってたやつは、どんなアルゴリズムで描画するつもりだったのか気になるわ
だれか解るやついるか?
おまえら代わりに解説しろよ
477 ◆QZaw55cn4c :2012/02/10(金) 19:20:38.38
>>455
huge ポインタは使いたくないなあ。バグありとのうわさもちらほら。
私なら自力で far ポインタを使ってマネージする。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

億精度の測定器が存在する事になる。
585デフォルトの名無しさん:2012/02/11(土) 00:02:08.58
>>579
傷害なら成立する場合があるし、
もし言われた本人が通報したらアウト。
さらにPC押収で調べられて余計なものが出てきたらそれも含めてやられる。
586デフォルトの名無しさん:2012/02/11(土) 00:03:04.44
>>582
>>585
大切なことなので?
587デフォルトの名無しさん:2012/02/11(土) 00:03:08.06
プログラミングで精度を上げられるかって話なのにアホだろ。
588デフォルトの名無しさん:2012/02/11(土) 00:03:12.76
589デフォルトの名無しさん:2012/02/11(土) 00:03:35.28
>>587
安価かきやがれ。。
590デフォルトの名無しさん:2012/02/11(土) 00:03:46.99
>>584
1000万年に1秒以下 の精度の時計があんだよ
言わせんなよ恥ずかしい
591デフォルトの名無しさん:2012/02/11(土) 00:04:40.92
スタンドアロンでできるわけないだろ。
何か別にセンサになるものでもあれば少しはどうにかなるかも知れんがな。
592デフォルトの名無しさん:2012/02/11(土) 00:05:26.42
スタンドアロンでできないから、>>567になるんだろう。
593デフォルトの名無しさん:2012/02/11(土) 00:06:26.76
594デフォルトの名無しさん:2012/02/11(土) 00:06:32.07
まあ、NTP使って、原子時計精度にできたとしても、
原子時計のクロック精度以上にはできない

結局同じことだが
595デフォルトの名無しさん:2012/02/11(土) 00:07:05.85
原 子 時 計 の ク ロ ッ ク 精 度www
596デフォルトの名無しさん:2012/02/11(土) 00:07:15.00
>>589
俺は傍観してただけでその話題には参加してないよ。
横から見てるだけでも、>>566に対する>>567なのはわかるつーの。
597デフォルトの名無しさん:2012/02/11(土) 00:08:02.42
>横から見てるだけでも、>>566に対する>>567なのはわかるつーの。
だよな。。
598デフォルトの名無しさん:2012/02/11(土) 00:08:33.74
まじかw
ちなみに、どんな可能性を考えたのか教えてくれw
599デフォルトの名無しさん:2012/02/11(土) 00:09:08.47
開発して3000万年も足ってないのに何で精度がすげーって分かるんだろ
600デフォルトの名無しさん:2012/02/11(土) 00:09:44.77
601デフォルトの名無しさん:2012/02/11(土) 00:11:34.03
>>595
何が面白いんだろう。
602デフォルトの名無しさん:2012/02/11(土) 00:11:41.25
久々にのぞいたけど、なんかこのスレおもしろいな。
だれもスレタイに沿ってないのは置いとくとしてw
603デフォルトの名無しさん:2012/02/11(土) 00:13:06.27
ソフト屋はどうしても仮想的な世界でものをかんがえちゃうからなぁ。。
604デフォルトの名無しさん:2012/02/11(土) 00:13:29.62
と、ヘボが申しております。
605デフォルトの名無しさん:2012/02/11(土) 00:13:51.29
>>604
またでたな、ヘボいうヘボ。。
606デフォルトの名無しさん:2012/02/11(土) 00:14:01.49
時間なんて会議で適当に一秒ずらしたりしてるのに、精度なんて意味ねえよ
607デフォルトの名無しさん:2012/02/11(土) 00:14:24.37
>>606
用途によるわw
608デフォルトの名無しさん:2012/02/11(土) 00:14:32.51
他言語スレと比べて活気がある
609デフォルトの名無しさん:2012/02/11(土) 00:15:43.34
めっちゃ伸びてるなw
で、ゴキブリは>>496だったとw
610デフォルトの名無しさん:2012/02/11(土) 00:16:06.43
>>606
時間がすべての基本なのにか。
611デフォルトの名無しさん:2012/02/11(土) 00:17:25.27
さらにマジレスすると、NTP使って定期的に時刻合わせしても、
時刻合わせから時刻合わせの間は、自前のクロック精度で刻んでるから
612デフォルトの名無しさん:2012/02/11(土) 00:17:31.77
1日80スレ、20分に1回書き込みがある。
613デフォルトの名無しさん:2012/02/11(土) 00:21:00.25
>>609
違う。
>>496はゴキブリ未満でガチゴミレベル。
つか書き込み見れば分かるだろ。
614デフォルトの名無しさん:2012/02/11(土) 00:23:09.81
>>610
時間の基準は光ですよ?
615デフォルトの名無しさん:2012/02/11(土) 00:24:20.09
相対論語りだす気か?
616デフォルトの名無しさん:2012/02/11(土) 00:24:40.05
うるせーハゲ。
617デフォルトの名無しさん:2012/02/11(土) 00:24:58.22
わるいがハゲじゃない
618デフォルトの名無しさん:2012/02/11(土) 00:26:02.84
頭頂部は見えないからな。
619デフォルトの名無しさん:2012/02/11(土) 00:26:27.19
鏡を使え。。
620デフォルトの名無しさん:2012/02/11(土) 00:27:29.64
実世界では原子より小さい誤差は存在しないのに
数学の世界では原子の何無量大数倍小さい精度の誤差も存在するってのが面白い
621デフォルトの名無しさん: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
622デフォルトの名無しさん:2012/02/11(土) 00:29:52.97
>>609
伸びてるのは>>494が原因、スルーしろと言いながらゴキブリと煽ってるのが問題

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

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

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

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

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

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

最近のC++ライブラリィーのガイドとかに比べれば遙かに簡単に(短時間で)読破できるぞ
664デフォルトの名無しさん:2012/02/11(土) 01:20:33.22
今ならあれだ、どうやって4GB以上のメモリを確保しますかって話だ。
665デフォルトの名無しさん:2012/02/11(土) 01:21:10.51
昔話でここまで伸びた
666デフォルトの名無しさん:2012/02/11(土) 01:21:23.37
free(buf);しないメモリリーカーがいるスレはここですか?
667デフォルトの名無しさん:2012/02/11(土) 01:21:44.82
>>666
3点。
668デフォルトの名無しさん:2012/02/11(土) 01:22:07.19
>>663
ブックオフで10円。
669デフォルトの名無しさん:2012/02/11(土) 01:22:55.66
そう言えば64bitプログラムってどんなメモリーモデルになるの?
Win64はなんかまたセグメント復活みたいなのを聞いた気がするけど
670デフォルトの名無しさん:2012/02/11(土) 01:24:07.40
俺の本棚にはM68000のユーザーズマニュアルがささってる。
671デフォルトの名無しさん:2012/02/11(土) 01:25:14.37
>>667
あえて33分の1しちゃうなんてドSなんだから(はぁと
672デフォルトの名無しさん:2012/02/11(土) 01:25:26.53
>>670
薄めの青枠でテカったやつだっけ?大学の講義で使ったな。
673デフォルトの名無しさん:2012/02/11(土) 01:28:10.66
calloc使ってるやつはゆとり
674デフォルトの名無しさん:2012/02/11(土) 01:28:43.25
昔は恐竜とかいてヤバかったよね、どうやって身を守る? とかそういう話?
675デフォルトの名無しさん:2012/02/11(土) 01:28:54.43
ゆとりはCなんて使わんだろ。
676デフォルトの名無しさん:2012/02/11(土) 01:29:35.60
677デフォルトの名無しさん:2012/02/11(土) 01:29:43.28
ゆとり言語ってなに?
678デフォルトの名無しさん:2012/02/11(土) 01:32:05.91
Javaだろ。
679デフォルトの名無しさん:2012/02/11(土) 01:32:35.52
Javaが入るならC#も入るな
680デフォルトの名無しさん:2012/02/11(土) 01:33:38.71
>>672
そうそう。CQ出版のやつ。
俺の脳内アーキテクチャはいまだにこれ。
681デフォルトの名無しさん:2012/02/11(土) 01:37:58.53
もう昔すぎて覚えてないわw
68020って別だっけ?アドレッシングモードが多くてCそのままアセンブラ書ける
やんけって感動したのは覚えてるw
682デフォルトの名無しさん:2012/02/11(土) 01:38:47.60
ん?インラインアセンブラのこと言ってる?
683デフォルトの名無しさん:2012/02/11(土) 01:39:40.50
いや、アセンブラ。
Cで書くくらい簡単にかけた。
684デフォルトの名無しさん:2012/02/11(土) 01:41:51.31
汎用のレジスタが沢山あるしメモリはリニアだし、
link/unlinkでスタックフレームつくったりとか高級言語っぽい。
なので86系とか難しすぎて無理。
685デフォルトの名無しさん:2012/02/11(土) 01:43:26.07
まぁそれも死に行く運命だったのだよね。
686デフォルトの名無しさん:2012/02/11(土) 01:44:59.43
まあ簡単に言えばマカだったんだよね俺、昔は。
687デフォルトの名無しさん:2012/02/11(土) 01:46:16.97
あれ、すごく夜にいいよね。
688デフォルトの名無しさん:2012/02/11(土) 01:53:10.19
インダイレクトアドレッシングを理解していれば、ポインター概念は既に理解済みと言える、くらいの昔話か。
689デフォルトの名無しさん:2012/02/11(土) 01:55:26.36
ちょっと何が言いたいのかわからない。
690デフォルトの名無しさん:2012/02/11(土) 01:55:31.06
ゆとーりがC使わないのはポインタが理解できないから?
691デフォルトの名無しさん:2012/02/11(土) 01:59:33.47
大学の授業がJavaだから。
692デフォルトの名無しさん:2012/02/11(土) 01:59:51.74
Javaってなんでゆとり言語なん?
693デフォルトの名無しさん:2012/02/11(土) 02:00:08.37
>>438
2の乗数で一桁切り捨て
どんな場面で使うんだろう?
694デフォルトの名無しさん:2012/02/11(土) 02:01:48.35
>>690
Joel on Software ジョエル・オン・ソフトウェア
ttp://japanese.joelonsoftware.com/Articles/Interviewing.html
695デフォルトの名無しさん:2012/02/11(土) 02:01:49.91
>>692
ゆとりが使うから。
696デフォルトの名無しさん:2012/02/11(土) 02:04:01.52
>>692
Cのポインターとメモリ管理に挫折したプログラマー(世界の殆ど)を救うべく設計された言語!!
.....のはずだった。
697デフォルトの名無しさん:2012/02/11(土) 02:04:03.75
まぁ、Java見下してるやつは大概Java使いこなせてないけどな
698デフォルトの名無しさん:2012/02/11(土) 02:04:46.09
>>696
…のはずだった????
699デフォルトの名無しさん:2012/02/11(土) 02:22:40.08
すれち
700デフォルトの名無しさん:2012/02/11(土) 03:49:11.46
>>557
市販の高級時計は、ずれない高級時計と、ずれる高級時計に分類されるわけだけど
701デフォルトの名無しさん:2012/02/11(土) 04:16:03.08
ヘ ボ
702 ◆QZaw55cn4c :2012/02/11(土) 05:40:34.07
>>661
MS-DOS の時代(16ビットコード)の昔話ね。今はまったく関係ない。
でも今でもわかっていない人がいるみたい。
703 ◆QZaw55cn4c :2012/02/11(土) 05:42:16.34
>>653
>> DS!=SS 問題をご存知ない?DLL 書くときに苦労しませんでしたか?
> 全然苦労しない。
そう‥‥‥、やっぱりみんなあこぎなことしてたんんだ‥‥‥。
704デフォルトの名無しさん: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)
を最高に高速な方法で書け
705デフォルトの名無しさん:2012/02/11(土) 08:26:36.11
例の時点でバグってるが。
速度を気にする関数で引数をポインタにするのはヘボ。
706デフォルトの名無しさん:2012/02/11(土) 08:40:43.96
と思ったらダブルポインタか。
なんだその仕様。
707デフォルトの名無しさん:2012/02/11(土) 08:54:43.65
>>706
自分が勝手に誤解して、仕様に文句つけてる馬鹿にしか見えない。
708デフォルトの名無しさん:2012/02/11(土) 08:56:17.05
連投自己分析乙
709デフォルトの名無しさん:2012/02/11(土) 08:57:51.20
QZって無職なの?
710デフォルトの名無しさん:2012/02/11(土) 09:02:04.73
>>707
いや、>>705はそのままだが。
速度気にするところでポインタ使ってる時点でクソなのは決定だろ。
しかもfloat*。
711デフォルトの名無しさん:2012/02/11(土) 09:04:04.96
どういう経緯でその仕様になったかも知らずに、決定とか言ってる奴は馬鹿。
712デフォルトの名無しさん:2012/02/11(土) 09:05:35.19
じゃぁ経緯を言ってみろよ。
どうせ大馬鹿な話なんだろ?
713704:2012/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関数を連続して実行した場合と同様の結果を得られる方法を、最高に高速に書け。
714デフォルトの名無しさん:2012/02/11(土) 09:25:21.54
問題の体をなしてないな。
715デフォルトの名無しさん:2012/02/11(土) 09:26:11.10
>>713
最高に高速とか、池沼みたいなこと言うのやめればいいんじゃなイカ?
716デフォルトの名無しさん:2012/02/11(土) 09:28:22.54
QZって無職なの?
717デフォルトの名無しさん:2012/02/11(土) 09:30:51.23
なんで命令口調なの?
口の聞き方ってもんを知らないの?
718デフォルトの名無しさん:2012/02/11(土) 09:36:42.82
坊やだからさ。
719704:2012/02/11(土) 09:39:39.12
>>717
おまえらが高速なコードぽんぽん書ける連中なら敬語使ってやるよ。
いまのところおまえらは口先だけの使えないゴミって認定だからな。俺の中で。
720デフォルトの名無しさん:2012/02/11(土) 09:40:39.60
と、ゴミ以下がほざいております。
721デフォルトの名無しさん:2012/02/11(土) 09:41:50.90
>>719
よく分かってるじゃないか!
分かってるならうせろクズ
722デフォルトの名無しさん:2012/02/11(土) 09:45:15.67
はい、自分の仕事は自分でしましょうね。
723デフォルトの名無しさん:2012/02/11(土) 09:47:38.42
高速にしたいならSSE使えばいいのに。
今時SSE使えない環境なんか気にしないでしょ?
724デフォルトの名無しさん:2012/02/11(土) 10:19:15.65
で、QZって無職なの?
725デフォルトの名無しさん:2012/02/11(土) 10:33:53.54
>>703
まとめると、お前には超えられなかった壁という事だ。バカは引っ込んでろ。
726デフォルトの名無しさん:2012/02/11(土) 10:46:40.98
>>712
>じゃぁ経緯を言ってみろよ。

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

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

pp = &p;



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

pp = &p;

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

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

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

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

pp = &p;

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

int *p;
pint *pp;

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

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

int i;
int *p, *pp;

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

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

でも実際にはダメ。

その理由は、&iと&pは同じアドレス値であっても、型が違うということでしょうか?
アドレスの型と言うものも、いまいちわからないポイントです。。
754デフォルトの名無しさん:2012/02/11(土) 11:48:04.79
ダメなのは型が違うから。
755デフォルトの名無しさん:2012/02/11(土) 11:48:54.02
アドレスの型というか、ポインタがさしてるものによって+1したときに
実際に進む大きさが違うのだよ。
756デフォルトの名無しさん:2012/02/11(土) 11:51:28.27
つーか、普通は警告が出るだけでダメじゃないけどな。
757730:2012/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幅でアドレスがインクリメントされちゃうと非常によろしくない

ってことですよね?

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

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

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

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

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

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

それから char *p; がレジスタとかはこっちでやってくれ
http://toro.2ch.net/test/read.cgi/tech/1179424842/
&p の一言で崩れるうましか発言の相手はしてられん
775730:2012/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値
776 ◆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
ごめんなさい。
777 ◆QZaw55cn4c :2012/02/11(土) 13:01:14.00
>>774
>みんな耐えてたんだよ
>だから PC の今がある

そうなんですか‥‥‥
にわかには信じがたいのですが。でも私の V30 じゃ、ついていけそうもないですね (++)
778デフォルトの名無しさん:2012/02/11(土) 13:01:33.02
バグってんのはお前の頭だろ。
779 ◆QZaw55cn4c :2012/02/11(土) 13:03:45.62
>>774
>それから char *p; がレジスタとかはこっちでやってくれ
言葉をはしょったので、結果そういう書き方になってしまい誤解を招いたようでごめんなさい。「ポインタ変数はレジスタに一対一だ」というつもりは毛頭ありません。
780デフォルトの名無しさん:2012/02/11(土) 13:16:46.54
ほんと、バカの壁は越えられないんだなと痛感するよね。
781 ◆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) で「取ってきた」その値。

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

いろいろ試して理解を深めてみます。
783デフォルトの名無しさん: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;

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

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

ぐらいでpointerの意義を理解できるとは思えない。
いい方が悪くて、申し訳ないけど、
理解した気になっているだけだと思う。
786デフォルトの名無しさん:2012/02/11(土) 13:37:09.06
>>784
自演乙。
787デフォルトの名無しさん: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に書き換えるなどしてよ。
788デフォルトの名無しさん:2012/02/11(土) 13:48:17.05
>>785
コテの人ですがあえてコテをはずしておきます。
>いい方が悪くて、申し訳ないけど、理解した気になっているだけだと思う。

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

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

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

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

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

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

の意味で書いています。

int *p, *pp;

と書くと、

int *p;
int **p;

という意味になってしまい、不適切でした。
すみません。気をつけます。
790785=787:2012/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;
}
791デフォルトの名無しさん:2012/02/11(土) 13:58:09.68
>>790
>>762 に比べると物理的に長すぎる。
もっと要点をぱぱっと書けませんか?

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

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

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

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

message[i]
pp[i]

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

配列の方は、アドレスを連続してメモリ確保し、定義時の
範囲外を指定するようなソースを書くと、コンパイルエラーを
出してくれるという違いでしょうか?
805デフォルトの名無しさん:2012/02/11(土) 14:30:02.18
基地害はレスすんなって
806デフォルトの名無しさん:2012/02/11(土) 14:30:30.28
QZは精神病んで仕事してないって話だったはず
807 ◆QZaw55cn4c :2012/02/11(土) 14:34:31.36
>>798
固定ハンドルじゃありません、トリップと固定ハンドルとは異なる概念です、霧
808デフォルトの名無しさん:2012/02/11(土) 14:37:22.23
>>807
ゴキブリを擁護してたゴミはレスすんなって
809785=787:2012/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な場合は書きません。

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

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

書けません の間違いだろ
アホはさっさと消えろ
812785=787:2012/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");
}
}
}
813785=787:2012/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");
814785=787:2012/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;
}
815 ◆QZaw55cn4c :2012/02/11(土) 14:49:14.25
>>812−814
長い‥‥‥。
816730:2012/02/11(土) 14:49:43.09
>>809
確かに、単変数iを定義しといて、そのアドレスを保持するポインタを
インクリメントすることはナンセンスですね。。例が悪かったです。
通常は、おっしゃる通り配列を受ける際にポインタを使用しますね。

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

貴重なお時間割いていただきどうもありがとうございます。
817 ◆QZaw55cn4c :2012/02/11(土) 14:51:03.17
>>808
レスってなんですか?
818デフォルトの名無しさん: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で十分だろって思ったらもういいやって思って書かなくなった。
そもそも、駄目な例は知らなくていいし。
初心者のうちは駄目な例ってのは有害だと思う。
初心者は、綺麗な良い例を学ぶだけで十分なんだよ。
819785=787:2012/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");
}
}
}
820730:2012/02/11(土) 15:08:22.93
>>818
エンディアンについては知っていました。
wikiは読んで再確認しました。

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

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

がわかりません。

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

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

つまり、

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

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

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

また一つ勉強になりました。
823785=787:2012/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
824デフォルトの名無しさん: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;
}
825730:2012/02/11(土) 15:31:34.77
>>822
あ、間違えてメル欄に書いちゃったw
826785=787:2012/02/11(土) 15:35:57.83
俺は忘れちゃった。

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

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

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

OOPでないレガシーなCも、やっぱり奥深い
829730:2012/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
830デフォルトの名無しさん:2012/02/11(土) 15:51:41.14
アホv.s.バカの掛け合いである。
何の役にも立たない。
かえって有害。
831デフォルトの名無しさん:2012/02/11(土) 15:52:11.29
結構Cを嗜んでいた
なんてどの口が言えるんだろう...
832デフォルトの名無しさん:2012/02/11(土) 15:54:10.36
だからさっき基地害はレスするなって言ったんだよ。
本人に自覚がないからいつまでもしがみついてるのか、
それとも荒らし目的か。
833デフォルトの名無しさん:2012/02/11(土) 15:58:22.86
うるさいゴミ
834デフォルトの名無しさん:2012/02/11(土) 15:59:37.31
>>832
死ね死ね死ね死ね死ね
835730:2012/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コードは動作がわかり、勉強になりました。
どうもありがとうございます。

迷惑になるので、とりあえずこの辺にしておきます。
スレ汚し失礼しました。
836デフォルトの名無しさん:2012/02/11(土) 16:02:45.53
>>835
コンパイラ何使ってんの?
837730:2012/02/11(土) 16:04:20.92
>>836
調べたところgcc 4.2でした。
838デフォルトの名無しさん:2012/02/11(土) 16:09:23.79
OSは?
64bitとか、使ったことないわw
839730:2012/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マシンです
840785=787:2012/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を試してみて。
多分、私と違う実行結果になるよ。

うーん、初心者の方じゃなかったのだろうか。
うーん。
841デフォルトの名無しさん:2012/02/11(土) 16:15:11.62
>>839
いや、もちろんOSは64bitだけど、ポインタが64bitってのを使ったことがないのよ。
macだとgccデフォで64bitなんか。
842785=787:2012/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);
843デフォルトの名無しさん:2012/02/11(土) 16:17:43.07
>>840
でたらめまき散らすの止めて引っ込んでろ。お前もQZと同程度の害虫だ。
844デフォルトの名無しさん:2012/02/11(土) 16:18:20.70
え、コテはずしたQZじゃないの?
845730:2012/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が対応しているようです。
846デフォルトの名無しさん:2012/02/11(土) 16:31:21.68
>>845=初心者を免罪符に使うゴミクズ
847730:2012/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
848 ◆QZaw55cn4c :2012/02/11(土) 16:34:18.41
>>823
>アドレスに型はない。
ポインタには型はある。

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

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

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

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



850785=787:2012/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");
}
}
}
851デフォルトの名無しさん:2012/02/11(土) 16:42:01.88
>>849
普通gccデフォじゃ64bitコンパイルできないよ。
852785=787:2012/02/11(土) 16:45:28.43
>>847
dump_sizeが100なのは計算があわんと思ったけど、
>>835
sizeof(int) = 4
って書いてたね。。。

ということで、、、
>>850のsizeof(int)と書いてる3箇所は sizeof(void *)に直して。。。
ごめんね。。。
853730:2012/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
854デフォルトの名無しさん:2012/02/11(土) 16:47:12.22
>851

-m32 -m64 じゃないの?

うちのLinux64bitだとデフォで64bitみたいだけど
855785=787:2012/02/11(土) 16:52:51.50
>>849
書けるをcompileできるにすれば話は通る。
856730:2012/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 |
857デフォルトの名無しさん:2012/02/11(土) 17:04:21.31
いい加減ゴミを書くのやめろ。
858785=787:2012/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っていうのは嘘なの???
ちょっと混乱中。。。
859デフォルトの名無しさん:2012/02/11(土) 17:09:56.64
そのためのlongだろ。
860785=787:2012/02/11(土) 17:19:18.05
861785=787:2012/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
862730:2012/02/11(土) 17:35:46.23
>>860
ソースのアップどうもありがとうございます。
問題なく実行できているようです。
結果は、64bit環境をお持ちのようですし、>>857のこともあるので控えます。
863デフォルトの名無しさん:2012/02/11(土) 18:03:47.55
>>848
> ポインタには型はある。
おまえさっき、char *p がレジスタとか言ってたろ
そーゆーのを五十歩百歩つーんだよ
864785=787:2012/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));
865785=787:2012/02/11(土) 18:14:33.28
>>863
>>848は逃げ口上を用意しているから後で逃げれると思ってるようだよ。
「燃料投下もそろそろ潮時か」なんて書いておいて、
逃げの体制を確保できていると思っているらしい。
今後、誰からも相手にされなくなるだけなのに、
なんで分かんないんだろ。
866 ◆QZaw55cn4c :2012/02/11(土) 18:45:52.20
>>865
逃げるもなにも、感じたことを書いているだけですが。

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

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

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

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

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

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

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

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


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

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


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

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

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

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

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

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

そのへんにしとけよくだらない話は
924 ◆QZaw55cn4c :2012/02/12(日) 11:58:57.52
ほんと、もうID板にしたいですよね。
925デフォルトの名無しさん:2012/02/12(日) 12:04:49.92
どうでもいいが>>896とかはクソな問題で有名な
3−SATの亜種じゃね?
926デフォルトの名無しさん:2012/02/12(日) 12:06:33.08
てか、ただの論理式の簡単化の話だろう。。
927デフォルトの名無しさん:2012/02/12(日) 12:11:31.52
QZって嫌がらせに来てるだけのゴキブリなんだから何言っても無駄っしょ
928 ◆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 もうちょっと簡単にならないか?
929デフォルトの名無しさん:2012/02/12(日) 12:50:32.77
周回遅れのバカは黙ってろ
930デフォルトの名無しさん:2012/02/12(日) 12:57:00.33
>>928
>>900で一応出てはいるね
ソースは簡単化コード?入力はどうなってるの?
まあ、ソース読めって話なんだけどさ
931 ◆QZaw55cn4c :2012/02/12(日) 13:01:37.76
>>930
遅かったか。これは失礼。
楽しんでいただいて光栄です。

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


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

あれ分からん
939デフォルトの名無しさん:2012/02/12(日) 16:01:27.80
条件式の記述の場合は真偽どちらかに偏らせて考えるからアレあんまし関係ないんだよね
940 ◆QZaw55cn4c :2012/02/13(月) 02:59:11.13
確かに本格派のクワイン・マクラスキー法では1, 0 の他、not care もありですね。
941デフォルトの名無しさん: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; // ワーニングにならない?
}
942デフォルトの名無しさん:2012/02/13(月) 04:03:07.87
どんなワーニングなの?
張ってよ
943デフォルトの名無しさん:2012/02/13(月) 04:46:07.89
× ワーニング
○ ウォーニング
944デフォルトの名無しさん:2012/02/13(月) 05:34:57.90
× ワーニング
○ ウォーニング
◎ヲゥーヌィン
945デフォルトの名無しさん:2012/02/13(月) 06:38:34.76
ウヴォーギン
946デフォルトの名無しさん
日本と中国の二者択一を迫る米国
http://www.chosunonline.com/site/data/html_dir/2012/02/11/2012021100371.html

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

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

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

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


米国 「もう韓国は捨てるから、中国の植民地になるか、親日になり日本の植民地になるか選べよ」 ★3
http://engawa.2ch.net/test/read.cgi/poverty/1329035247/