C言語なら俺に聞け(入門編)Part 100at TECH
C言語なら俺に聞け(入門編)Part 100 - 暇つぶし2ch1:営利利用に関するLR審議中@詳細は自治スレへ
12/03/30 21:01:32.89
C言語の入門者向け解説スレッドです。

★前スレ
C言語なら俺に聞け(入門編)Part 99
スレリンク(tech板)
★過去スレ
URLリンク(makimo.to:8000)
★教えて欲しいのではなく宿題を丸投げしたいだけなら
  ↓宿題スレ↓へ行ってください。
C/C++の宿題片付けます 156代目
スレリンク(tech板)
★C++言語については避けてください。C++対応明記スレへどうぞ
★分からない事をなるべく詳しく書いて下さい。
★ソースコードを晒すと答えやすくなるかもしれません。
  # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること
  # サイズが大きい場合は宿題スレのアップローダ等を利用してください
★開発環境や動作環境も晒すと答えが早いかもしれません。
★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。

長くなりそうなコードはcodepadに貼り付けてもいいでしょう
URLリンク(codepad.org)

2:営利利用に関するLR審議中@詳細は自治スレへ
12/03/30 22:14:04.75
part 0x64 おめでとう!

3:営利利用に関するLR審議中@詳細は自治スレへ
12/03/30 23:08:53.13
>>1


4:営利利用に関するLR審議中@詳細は自治スレへ
12/03/30 23:21:06.70
>>1


5:営利利用に関するLR審議中@詳細は自治スレへ
12/03/31 00:22:16.85
文字列の細かい操作はやっぱりC++よりCの方がやりやすいなあ

え?独り言はチラシの裏に書けって?どうも

6:営利利用に関するLR審議中@詳細は自治スレへ
12/03/31 01:06:28.97
>>5
std::stringが使いにくいってこと?
それなら同意。

7:営利利用に関するLR審議中@詳細は自治スレへ
12/03/31 01:30:32.63
rubyやpythonと比べたら使いづらいけど
Cと比べれば全然マシだと思うけどなぁ

8:営利利用に関するLR審議中@詳細は自治スレへ
12/03/31 03:35:38.67
sprintfの万能さには勝てない。

9:営利利用に関するLR審議中@詳細は自治スレへ
12/03/31 04:31:39.18
sprintfじゃバッファオーバーフローが防げない
char buff[十分なバッファ];
とかしてsnprintfの戻り値チェックとかめんどくさいっす

10:営利利用に関するLR審議中@詳細は自治スレへ
12/03/31 04:37:22.90
/dev/nullに書いて長さ調べるのはだめなの?

11:営利利用に関するLR審議中@詳細は自治スレへ
12/03/31 04:39:54.71
数スレ前で同じような話があった気がする

12:営利利用に関するLR審議中@詳細は自治スレへ
12/03/31 05:01:42.70
テンプレートライブラリって普及してるの?
あれってコンパイルするとマクロみたいに展開されて
デバッグ凄く大変になるんじゃなかったっけ?
昔ATLとか出始めの時に使おうと思ったけど
メンテナンス性が凄く悪そうな印象だったからやめた記憶がある。
なんかライブラリと自分のコードの境目が曖昧になるのって
あんまり居心地がよく無い

13:営利利用に関するLR審議中@詳細は自治スレへ
12/03/31 05:07:43.04
普及してる

14:営利利用に関するLR審議中@詳細は自治スレへ
12/03/31 05:32:14.91
>>10
どういうこと?
できたらサンプルソースお願い。

15:営利利用に関するLR審議中@詳細は自治スレへ
12/03/31 12:16:01.08
>>14
#include <stdio.h>
#include <stdarg.h>

int formattedLength(const char * form, ...)
{
FILE * fp = fopen("/dev/null", "w");
va_list args;
va_start(args, form);
int len = vfprintf(fp, form, args);
va_end(args);
fclose(fp);
return len;
}

int main(int argc, char ** argv)
{
printf("%d\n", formattedLength(argc > 1 ? argv[1] : "%g", 1. / 3));
return 0;
}


16:営利利用に関するLR審議中@詳細は自治スレへ
12/03/31 16:08:20.20
文字配列の初期化って0x00で初期化するのがいいの?
ヌル文字で初期化ってどうなのかなあ。
0x20で初期化するのってどう?

17:営利利用に関するLR審議中@詳細は自治スレへ
12/03/31 16:16:43.78
危険

18:営利利用に関するLR審議中@詳細は自治スレへ
12/03/31 17:01:47.64
>>16
asciiの積もりだろうから空白文字だろうけど、それで初期化することは無意味。
先頭にナル文字を書いておけば、長さ0の文字列として扱える。

19:営利利用に関するLR審議中@詳細は自治スレへ
12/03/31 22:29:08.21
>>15
んーと、それを簡単に書くと
int len = snprintf(NULL,0,...);
でしょ?
int len = snprintf(NULL,0,...);
int plen = len+1;
char *p = malloc(plen);
snprintf(p, plen, ...); /* erro check 省略 */
free(p);
毎回、snprintfを2回呼んでmalloc/freeはダサくね?って話。
とはいえ、固定長バッファで溢れたらエラーで終わりってのも微妙だし
バッファを使いまわしてreallocするのも微妙

20:営利利用に関するLR審議中@詳細は自治スレへ
12/03/31 22:53:54.41
天地明察の原作者が一番かわいそうだわ

21:営利利用に関するLR審議中@詳細は自治スレへ
12/03/31 22:54:09.06
誤爆ごめんなさい

22:営利利用に関するLR審議中@詳細は自治スレへ
12/03/31 23:02:22.15
asprintf使えよ

23:営利利用に関するLR審議中@詳細は自治スレへ
12/03/31 23:07:52.56
assprintf?

24:営利利用に関するLR審議中@詳細は自治スレへ
12/03/31 23:20:53.34
処理系依存じゃん

25:営利利用に関するLR審議中@詳細は自治スレへ
12/03/31 23:32:04.01
うん

26:営利利用に関するLR審議中@詳細は自治スレへ
12/04/01 01:58:27.03
俺はC言語の達人
まいったか!?

27:営利利用に関するLR審議中@詳細は自治スレへ
12/04/01 02:05:52.10
まいりました


28:営利利用に関するLR審議中@詳細は自治スレへ
12/04/01 08:38:49.75
なにこの名前欄

29:営利利用に関するLR審議中@詳細は自治スレへ
12/04/01 09:34:49.49
これもすべてQZクズのせい

30:営利利用に関するLR審議中@詳細は自治スレへ
12/04/01 10:32:31.72
スレリンク(tech板:46番),48,50


31:営利利用に関するLR審議中@詳細は自治スレへ
12/04/01 12:13:28.81
yaccで分岐ステートメントをインタープリター実装する方法がわからないので教えてください。

selection:
__STATE_IF expression __STATE_THEN expression __STATE_ELSE expression
とした場合にthen、else両expressionが還元されるので、
if x then a=1 else a=2のような構文がインタープリター動作の場合破綻してしまい困ってます。
これを解決する一般的な良い方法があったら教えてください。


32:はちみつ餃子 ◆8X2XSCHEME
12/04/01 12:39:17.18
パースの段階では構文木を構築するだけにして、実行とは段階を分けるのが普通。
小手先のトリックを使えばなんとかならんでもないけど…
例えば

cond: __STATE_IF expression __STATE_THEN
ifstatement: cond expression __STATE_ELSE expression

という風にふたつに分離してしまえば条件節の結果を先に得られるので、
それが真であれば else 節はよみとばす (パースだけして副作用を発生させないようにフラグを立てるとか) というような実装にできる。


33:営利利用に関するLR審議中@詳細は自治スレへ
12/04/01 13:27:39.48
>>32
フラグで読み飛ばすって、具体的にどうやるか思いつかないです。

cond: __STATE_IF expression __STATE_THEN {$$=$2; if_cond=$2;}
ifstatement: cond if_expression __STATE_ELSE if_expression
if_expression : expression {if (if_cond) 各種;}

的なことだろうけど、このif_cond をどう使えばいいのかイメージが沸きません。

>>実行とは分けるのが普通
たしかに全体を一旦中間コード(おれアセンブラコード)へ変換するアプローチの方が
逆に簡単なような気がしてきましたorz
(簡単のためにインタープリターにしようと思ったのだけど、コンパイラー作る方が逆に簡単っぽい)

34:営利利用に関するLR審議中@詳細は自治スレへ
12/04/01 13:38:45.22
いま閃いたんですけど、
lexのパーサーモードに%x <if_then>や %x <if_else>を用意して
字句解析の段階でダイレクトに if_expression の読み飛ばしを指定してみてはどうかと。
gotoをラベルテーブルに対するyyin操作で実装するような感じで。


35:31
12/04/01 13:40:59.33
>>32
ありがとうございます。とてもいいヒントになりました。

36:営利利用に関するLR審議中@詳細は自治スレへ
12/04/01 18:42:26.45
&((HOGE + i)->fuga) という表記って、もっとすっきり書けないんでしたっけ?
(別にポインタを用意するのはナシで)
もう長年使ってないから忘れてもーた…(´Д`)

37:営利利用に関するLR審議中@詳細は自治スレへ
12/04/01 18:49:06.32
&HOGE[i].fuga

38:営利利用に関するLR審議中@詳細は自治スレへ
12/04/01 18:50:14.09
>>36
あんま変わんね
&HOGE[i].fuga

39:営利利用に関するLR審議中@詳細は自治スレへ
12/04/01 19:10:58.83
FUGA* getFugaReference(HOGE* hoge, int index);


40:36
12/04/01 19:15:16.83
やっぱ直接メンバ指定すると配列になっちゃうかー
㌧㌧

41:営利利用に関するLR審議中@詳細は自治スレへ
12/04/01 21:53:47.78
プログラミングの勉強を始める時に色々オススメの本を教えて頂いた者です。どうしてもお礼が言いたくなり、この場を借りてお礼を言わせて下さい!あの時は本当にありがとうございました!お陰で苦手だった勉強も楽しくなってきました!本当ありがとうございます!

42:営利利用に関するLR審議中@詳細は自治スレへ
12/04/01 22:03:41.77
>>41
また困ったことがあればいらっしゃい

43:営利利用に関するLR審議中@詳細は自治スレへ
12/04/01 23:24:31.09
可愛いやつだ

44:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 14:08:04.29
URLリンク(qune.cside.com)

> また,この本は,プログラム内の定数にマクロ定数を使えと言う。今でもそゆ古典的なことを勧めてる人がいるのかと,ちょっとびっくりしたんだけれども,何も知らない子に変なこと教えるなといいたい。

このブログにこんなことが書いてあったのだけど、普通はどうするんでしょうか。


45:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 14:17:02.13
ステマ乙www

46:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 14:28:03.59
>>44
#defineではなく、enumで、数値に名前をつける。constもつかえる

「数値は、マクロではなく定数として定義しよう。Cプログラマは、マジックナンバー
の値を管理するのに伝統的に#defineを使ってきた。しかしCのプリプロセッサは
強力だが乱暴なツール(中略)
CとC++では、整定数をenum文で定義できる。C++では任意の型の定数をconstで
宣言できる。
 const int MAXROW = 24, MAXCOL = 80;


『プログラミング作法』p. 41(ブライアン・W・カーニハン、ロブ・パイク)

47:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 14:28:57.72
>>44
オブジェクトサイズは言語に計算させよう(中略)
2や4ではなく、sizeof(int)
(中略)
 char buf[1024];
 fgets(buf, sizeof(buf), stdin);
バッファサイズは依然としてマジックナンバーだが、宣言に1回登場するだけで
済む」

『プログラミング作法』p. 43(ブライアン・W・カーニハン、ロブ・パイク)

48:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 14:38:17.48
>>46
C++ならいいけど、Cのconstは外部リンケージだから定数には使いにくいっていうか。
配列の要素数とか使えないところもあるし。

49:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 14:47:29.02
>>44
未来から来て、過去の人を笑うのは簡単。
100%バグのないプログラムもない。
人間謙虚でありたいものですね。

50:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 15:11:02.71
> 配列の要素数とか使えないところもあるし。
具体例ほしいなー

51:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 15:30:05.01
>>50
const int TBL_SIZE = 10;

int tbl[TBL_SIZE]; ← エラー

52:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 15:55:08.31
>>51
あー、ごめん
それがエラーになるような実行環境の具体例ね。

53:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 15:59:22.29
マクロはプリプロセッサーだけど
constはコンパイラーオプションだからな

54:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 16:03:23.39
>>52
アホなん?
URLリンク(codepad.org)

55:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 16:04:00.48
>>52
バカのくせに上から目線w

56:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 16:05:49.62
>>44
これもC++の仕様と混同してるだけなんじゃないの?

57:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 16:08:25.35
え?
そいつ、C++知らねーんじゃねーの?
今時Cの本もないだろに。

58:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 16:13:34.58
>>54
初めて知ったわ
file scopeだとダメなんだね

59:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 16:14:45.52
>>48にそのまま書いてあるのに、アホなん?

60:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 16:16:30.12
>>57
C++だとマクロよりconstやらinline関数の使用が推奨されてるから、
Cでもそうだと思ってるんじゃないの? >>44 のブログの人。

61:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 16:17:13.73
本 人 乙。

62:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 17:22:08.72
enumハックなつかしいなぁ。

63:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 17:34:19.81
即値やdefineマクロを使わずイミディエイト値を用意するとなると・・・

64:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 18:19:09.30
#define定数をconst定数に書き換えたところで大してありがたみを感じたことって実際ないよな
#defineで普通に問題なく事は進んでいくし

65:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 18:34:48.86
まぁデバッガで見えるのと、括弧をつけたつけないで変なことにならなくて
済むってくりだからね。

66:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 18:42:09.29
C++ での NULLの実装は… 任意なんだっけ?
ほとんど #define でやってるように見受けられるけど

67:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 18:44:18.30
関数のプロトタイプにconst付いてない場合にconst定数を引数で渡すと引数の型が違うとか言って怒られるし
プロトタイプを変更したらconst付けてないのが渡せなくなるしマジうざいんだけど

68:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 19:04:12.36
>>67
なんか違ってないか?

69:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 19:05:06.65
>プロトタイプを変更したらconst付けてないのが渡せなくなるしマジうざいんだけど

こう言う動作だっけ?
もうC++書いてないから忘れたけど
関数の引数でconst宣言するのって
関数内部で参照先の値を変えませんよって言ってるだけじゃなかったっけ?
呼び出し側でパラメーターに非const渡せないとか有るんだけっけ?

70:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 19:08:01.79
ス レ 違 い

71:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 19:14:20.49
プログラミング作法って本当に良書だよなあ
さすがカニチャーハンさん
尊敬しております(^人^)

72:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 19:45:10.03
間違いを突っ込まれるとスレ違いって言い出す人が現れるな。

73:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 19:46:50.63
どこがつっこみだよ。
ろくに知りもしないなら書くなよ。

74:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 19:47:58.77
constは糞でFA

75:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 19:58:05.94
自分がconstの仕様を知らないのをconstが糞だって言ってごまかしてたらいつまでたっても上達できないだろ。


76:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 20:03:33.16
>>69
メンバ変数を書き変えませんよの const メソッドとごっちゃになってる気配

77:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 20:06:41.21
単にプロトタイプと定義の両方を同時に変更してないってだけじゃね?

78:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 20:09:25.50
>>71 鬱になって会社辞めた時、もうプログラムなんてしない
と思って「プログラミング作法」捨てたんだよな。
もったいないことした。

79:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 20:18:51.51
もうプログラムなんてしないなんて言わないよ絶対~

80:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 20:26:02.51
デスマ はじまるよ
ほら また 僕のそばで~


81:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 20:29:00.45
こういうのってマヌケがよく書くよな。

82:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 20:30:43.33
>>71
俺も欝でITは辞めたけど、未だにプログラムは書いてる。
でも辞めた際、結構本捨てたなぁ…

83:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 20:32:32.62
>>42、43
レス遅くなってすみません。色々あって職を変えることになり、覗く暇がなかったもので^^;
なるべく自分で答えを見つけたいのでどうしても分からなくてどうしようもない時はまたお願いしていいですか?優しい言葉ありがとうございます!


84:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 20:51:26.12
C++のconstはオブジェクトを値で渡すイメージで使いたい時にとても便利
オブジェクトを実際に値で渡すとスタックを大きく消費するしそのたびにコンストラクターや
コピー演算子が呼ばれてしまうが、constを付けることでオブジェクトのアドレスをスタックにコピーするだけですむのだ
関数内部でオブジェクトが変更されないことが保証されているので、
呼び出し側はあたかも引数に渡したオブジェクトをプリミティブ型のように扱うことが出来る。
いわゆる近代的な言語で設計されているStringオブジェクトやIntegerオブジェクトのようなプリミティブ型を
具象化したクラスが、非コンストメンバーを持たないことで、プリミティブ型のような動作を
するのはとても興味深い。このような動作をさせるのにコンスタントオブジェクトという考え方はとても重要である。

85:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 20:52:28.25
何アホなこといってんだコイツ
脳みそにウジでも湧いてんのか
Cのconst語れよ低能


86:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 20:52:37.75
>>84
C++スレでやれ

87: ◆QZaw55cn4c
12/04/02 20:55:39.04
>>84
それは const とともに & も必要じゃないかい?

88:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 21:06:38.15
まだC言語スレでC++を語る馬鹿がいたのか

89:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 22:06:32.90
つかC99で可変長配列おkになったよね?
なんか>>51とか>>54で不安になって確認しなおしちゃったよ

90:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 23:19:32.91
C99でもダメじゃないのか?

91:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 23:26:18.32
C99では、配列宣言時には要素数に変数も使えるんじゃなかったか?
真の意味の可変長配列(スコープの途中で要素数を変更したりできるもの)ではないけど…

92:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 23:28:24.90
>>90
URLリンク(privatepaste.com)

93:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 23:29:25.42
>>91
そう、それのこと

94:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 23:29:40.12
>>87
珍しくあってる。

95:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 23:31:26.78
>>92
いや、>>54の話。

96:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 23:49:10.90
ああ、ファイルスコープか

97:営利利用に関するLR審議中@詳細は自治スレへ
12/04/03 09:39:40.06
>>92
これ、ちゃんと最適化されて静的配列になるのかね。
ヘッダーファイルで#define のかわりにconst使うとすると、
static const int n = 100;
とか
extern const int n;
とかしないといけないじゃん。
下のようにすると最適化は不可能だよね。
C99のお作法的にはどうするのが正解なんだろ。

98:はちみつ餃子 ◆8X2XSCHEME
12/04/03 12:44:57.53
>>97
処理系によって、状況によって最適化されるよ。
VC や gcc は翻訳単位をまたぐ最適化もできる。

99:営利利用に関するLR審議中@詳細は自治スレへ
12/04/03 14:27:30.29
C言語で2Dゲーム作るのにDXライブラリーより簡単なライブラリーってある?

100:営利利用に関するLR審議中@詳細は自治スレへ
12/04/03 14:43:57.68
>>99
ncurses

101:営利利用に関するLR審議中@詳細は自治スレへ
12/04/03 16:31:09.98
ncursesだとnethackくらいが限界かと思う。

102:営利利用に関するLR審議中@詳細は自治スレへ
12/04/03 17:11:32.51
つくーるでつくれ。

103:営利利用に関するLR審議中@詳細は自治スレへ
12/04/03 22:35:34.42
うん

104:営利利用に関するLR審議中@詳細は自治スレへ
12/04/03 23:02:56.88
猫でもわかるってサイト一通り見たんだけど、次何やればいい?
サイトとか教えて

105:営利利用に関するLR審議中@詳細は自治スレへ
12/04/03 23:04:46.23
              「C実践プログラミング」 でCの文法、make、gdbなど、基礎を習得
                                ↓
     「C言語ポインタ完全制覇」 or 「秘伝C言語問答 ポインタ編」 でポインタに関して完全理解する
                                ↓
「エキスパートCプログラミング―知られざるCの深層」 でスタック、ヒープ、リンカ、ローダなど周辺知識を習得
                                ↓
      「C言語によるオブジェクト指向プログラミング入門」 で大規模プログラムの作り方を学ぶ
                                ↓
           「C言語デバッグ完全解説」でバグに強いプログラムの記述法をマスター
                                ↓
        「Code Complete(上)(下)」でより良いC言語プログラムとは何かを各人で考察する
                                ↓
                              神の誕生


106:営利利用に関するLR審議中@詳細は自治スレへ
12/04/03 23:18:51.30
英語で言う文法みたいな感覚は理解できたけど、そこから先が・・・orz

107:営利利用に関するLR審議中@詳細は自治スレへ
12/04/03 23:23:43.29
やろうとしていることをプログラミング言語以前に母語で説明できない奴はプログラマに向いてないってダイクストラが言ってた。

108:営利利用に関するLR審議中@詳細は自治スレへ
12/04/03 23:29:21.26
だいたい分かるだろw


109:営利利用に関するLR審議中@詳細は自治スレへ
12/04/04 00:17:35.18
天才の9割は左利き

110:営利利用に関するLR審議中@詳細は自治スレへ
12/04/04 00:22:45.74
というかB型が圧倒的に多い、経験則だが。
組み込み系なら一層ね。


111:営利利用に関するLR審議中@詳細は自治スレへ
12/04/04 00:23:40.87
まず作りたいものがあってその実現の為に必要な知識を身に付けるという流れが正しいのであって
ただ盲目的に知識だけ身に付けてもそれで何か勝手に生み出されるかっていうとそういうわけではないよね

112:営利利用に関するLR審議中@詳細は自治スレへ
12/04/04 00:52:23.09
デタラメに仕入れたはずの知識が線で結ばれることがある
オートマトンとかグラフとか、汎用性が高いと信じられているものと
それに付随するアルゴリズムは、知っておくだけでも有益

113:営利利用に関するLR審議中@詳細は自治スレへ
12/04/04 18:51:50.32
ポインタについて質問させて下さい。
いま、あるメモリ上にint型の領域をおき
int*型ポインタ変数ip3にそのアドレスを、
int**型ポインタ変数ip2にip3のアドレスを、
int***型ポインタ変数ip1にip2のアドレスを入れ、
ip1から辿って***ip1でint型の値を得られるようにすることを考えます。すなわち、
ip1→ip2→ip3→int型の値
のような形にしたいという事です。それで以下のようなコードを書いたのですが
int ***ip1, **ip2, *ip3;
ip3 = malloc(sizeof(int));
*ip3 = 2;
ip2 = malloc(sizeof(void*));
*ip2 = ip3;
ip1 = malloc(sizeof(void*));
*ip1 = ip2;
printf("%d",***ip1);
これだと型宣言の時点において、int型の値との間に挟まれているポインタの数に応じて、*の数を静的に決めなければなりません。
最終的にint型の値を取り出す際には、*の数を指定してやらなければならないと思いますが、
ip1, ip2, ip3はその仲立ちに過ぎないのですから、「int型からポインタ何個分離れているか」はドントケアで良いはずです。
このような場合、そのように定義するのが適切でしょうか?
ip1,ip2,ip3をvoid*で定義しようとしたらエラーが出ました。

114:営利利用に関するLR審議中@詳細は自治スレへ
12/04/04 18:54:18.96
訂正です。
×そのように定義するのが適切でしょうか?
○どのように定義するのが適切でしょうか?

115:営利利用に関するLR審議中@詳細は自治スレへ
12/04/04 18:54:36.28
そもそもの設計が間違ってる。

116:営利利用に関するLR審議中@詳細は自治スレへ
12/04/04 19:17:36.35
テメーの手に余ることを設計しても
手のつけられないゴミカスが出来上がる
お前がアホなうちは
そんなクソをこの世に生み出すのは

やめ☆とけ


117:営利利用に関するLR審議中@詳細は自治スレへ
12/04/04 19:26:24.22
>>113
void *ip3;
ip3 = malloc(sizeof(int));
*ip3 = 2;
これがエラーになる理由を考えよう。

118:営利利用に関するLR審議中@詳細は自治スレへ
12/04/04 19:47:02.18
>>113
void *で宣言して使う時にキャストすりゃできるけどさぁ…

ip1とip2のmallocはいらないだろw

119:営利利用に関するLR審議中@詳細は自治スレへ
12/04/04 19:48:37.64
>>113
> 「int型からポインタ何個分離れているか」はドントケア
うんうん、ドントケアだよドントケア。
そんなこと考えないからね。

120:営利利用に関するLR審議中@詳細は自治スレへ
12/04/04 19:56:20.53
専用のmalloc/freeを作るところから始めようじゃないか
*int malloc_i2(int**);void free(int**)
**int malloc_i3(int**);void free(int***);

121:営利利用に関するLR審議中@詳細は自治スレへ
12/04/04 22:05:14.41
ip1→ip2→ip3→int型の値
ここだけ抜き取ってみると線形リストでことたりるんじゃね? と思ってしまう

122:営利利用に関するLR審議中@詳細は自治スレへ
12/04/04 22:16:38.57
>>113
よくわからんが、やりたい事は↓のようなことじゃないか?

int *pi, **ppi, ***pppi;

// int用領域確保
pi = malloc(sizeof(int));

// intの値設定
*pi = 2;

ppi = π
pppi = &ppi;

printf("%d\n", ***pppi);

123:営利利用に関するLR審議中@詳細は自治スレへ
12/04/04 22:18:14.92
>>122

ppi = π
って右辺は化けている。

化けないようにアンパサンドを全角で書くけど。
ppi = &pi;

です。

124:営利利用に関するLR審議中@詳細は自治スレへ
12/04/04 22:29:39.70
化けてないでござる

125:営利利用に関するLR審議中@詳細は自治スレへ
12/04/04 22:31:20.86
jane style と firefox じゃあ
モロにギリシャアルファベットのパイになってる


126:営利利用に関するLR審議中@詳細は自治スレへ
12/04/04 23:49:01.63
>>122

アンパ **;ってHTMLの特殊文字の書き方だったのを思い出して、
下記のように書き換えました。

int i, *pi, **ppi, ***pppi;

// int 値設定
i = 2;

// 各ポインタ設定
pi = &i;
ppi = &pi;
pppi = &ppi;

printf("%d\n", ***pppi);

127:営利利用に関するLR審議中@詳細は自治スレへ
12/04/05 00:03:37.86
構造体を使えば済む話だろ、どうせ。

128:営利利用に関するLR審議中@詳細は自治スレへ
12/04/05 00:59:15.58
エロイ人~教えてー
mallocとかでメモリ確保するのに実メモリサイズ以上の
メモリ取ろうとしたい場合ってどうすりゃいいの?
例えば、PCに8GBの実メモリ積んでて、10GBのメモリを確保したい時とか。
仮想メモリとか、実メモリで説明してくれ。
ダメなら、どういうエラー処理すればいいのかもよろしく。

129:営利利用に関するLR審議中@詳細は自治スレへ
12/04/05 01:01:24.20
>>128
設計見直して、実メモリ内で収まるようにする。

130:営利利用に関するLR審議中@詳細は自治スレへ
12/04/05 01:02:20.31
メモリマップドファイル使え
以上。

131:営利利用に関するLR審議中@詳細は自治スレへ
12/04/05 01:11:18.41
>>130
kwsk

132:営利利用に関するLR審議中@詳細は自治スレへ
12/04/05 01:17:07.11
>>131
ggrks

133:営利利用に関するLR審議中@詳細は自治スレへ
12/04/05 01:17:39.17
>>131
環境依存だ
mmap でもググってろ

134:営利利用に関するLR審議中@詳細は自治スレへ
12/04/05 01:22:55.02
さんきゅー ぐぐってみるゎ!

135:営利利用に関するLR審議中@詳細は自治スレへ
12/04/05 02:08:13.69
標準関数と同じ結果を返す自作関数(strlenやstrcpy)を作成してみたのですが、
パフォーマンスが大きく異なるのですが一体何が原因なのでしょうか?
以下strlenの自作関数strlen2

int strlen2(char *Buff){
  int i=0;
  while(Buff[i]!='\0'){
    ++i;
  }
  return i;
}

136:営利利用に関するLR審議中@詳細は自治スレへ
12/04/05 02:09:36.35
最適化

137:営利利用に関するLR審議中@詳細は自治スレへ
12/04/05 02:25:26.40
>>136
具体的にどのようなコードにすればよいのでしょうか?

138:営利利用に関するLR審議中@詳細は自治スレへ
12/04/05 02:31:16.56
>>135
Cの標準ライブラリ関数は非常によく使われるので、
実装がチューニングしてある事も多い
内部でSSEのような拡張命令を使ってたりね

あと、コンパイラが標準ライブラリ関数を検出して、
インライン展開などの最適化をかけている事がある

139:営利利用に関するLR審議中@詳細は自治スレへ
12/04/05 03:00:50.03
>>128
PCがWindowsマシンをさしているのなら、実メモリサイズの制限は受けないよ。

140:営利利用に関するLR審議中@詳細は自治スレへ
12/04/05 05:08:07.80
>>113に答えて頂いた方々ありがとうございます。
線形リストをやりたいのではなく、ポインタを使ってアクロバットな事をやればポインタへの理解が深まるかなぁと思ったのですが・・・どうもトンチンカンな事をしていたようです。
ip1とip2のmallocは確かに要りませんでした。ip1 = &ip2;で良かったですね。

141:営利利用に関するLR審議中@詳細は自治スレへ
12/04/05 05:40:27.35
void *にキャストされたポインタは、元のポインタに戻すことができると決まっているけれど、
元の型がわからないから、そういうのを構造体に持たせて、線形リストにしてはどうかという提案だと思っていたよ。

いかにもめんどくさそうでしょ。でもポインタへの理解を深める目的だったらやってみてもいいんじゃないの。

142:営利利用に関するLR審議中@詳細は自治スレへ
12/04/05 09:01:49.23
>>137
repne scasb
あたりを使えば速くなると思うけど、最適化で既に使われるのかな?

143:営利利用に関するLR審議中@詳細は自治スレへ
12/04/05 09:36:36.95
論理演算で、指定の位のビットフラグが立っていれば削除するのってどうすればよいですか?
以下のことをif文をつかわずにやりたいです。

if(hoge & 3) {
hoge -= 3;
}


144:営利利用に関するLR審議中@詳細は自治スレへ
12/04/05 09:46:30.18
hoge &= ~3

145:143
12/04/05 09:50:17.54
>>144
ありがとうございます!!

146:営利利用に関するLR審議中@詳細は自治スレへ
12/04/05 10:05:10.99
みんなwchar_tって使ってる?

147:営利利用に関するLR審議中@詳細は自治スレへ
12/04/05 11:15:56.63
うん

148:営利利用に関するLR審議中@詳細は自治スレへ
12/04/05 11:39:11.45
>>143
最早どうでもいいだろうけど>143のコード断片では例えばhogeが1のときに破綻するよ。

149:営利利用に関するLR審議中@詳細は自治スレへ
12/04/05 12:01:26.70
よかったです

150:営利利用に関するLR審議中@詳細は自治スレへ
12/04/05 12:14:42.66
1と2のorかもしれないじゃないか

151:営利利用に関するLR審議中@詳細は自治スレへ
12/04/05 12:44:48.81
>>150
もう一歩前へ

152:営利利用に関するLR審議中@詳細は自治スレへ
12/04/05 13:03:32.57
>>143
4の倍数じゃなかったら3を引くってことをやりたいわけじゃないのね

153:営利利用に関するLR審議中@詳細は自治スレへ
12/04/05 13:05:36.75
うん

154:営利利用に関するLR審議中@詳細は自治スレへ
12/04/05 15:27:58.64
3てのは2ビット立っているってのを理解してないに3カノッサ。

155:営利利用に関するLR審議中@詳細は自治スレへ
12/04/05 17:52:55.65
指定の位のビットフラグ、、、
hoge &= ~(1<<2)
なんじゃないのか?

156:営利利用に関するLR審議中@詳細は自治スレへ
12/04/05 18:02:43.28
日本語の説明と記述されたコードが不一致だから どうとでもとれるな

    hoge   1 2  3 4 5 6
>>143 結果 -2 -1 0 4 2 3
>>144 結果  0  0 0 4 4 4

157:営利利用に関するLR審議中@詳細は自治スレへ
12/04/05 18:38:17.55
#include <stdio.h>
#include <sys/types.h>

static u_int biton(u_int a, u_int bit)
{
return a | (1 << bit);
}

static u_int bitoff(u_int a, u_int bit)
{
return a & ~(1 << bit);
}

static int bitcmp(u_int a, u_int bit)
{
return (a & (1 << bit)) ? 1: 0;
}

main()
{
printf("%u\n", biton(biton(0, 0), 1));
printf("%u\n", bitoff(7, 2));
printf("%d %d %d\n", bitcmp(3, 0), bitcmp(3, 1), bitcmp(3, 2));
}

158:営利利用に関するLR審議中@詳細は自治スレへ
12/04/05 19:10:19.64
hogeの下位2ビットをクリアしたい、と解釈しましたので、>>144のようなコードになりました。
どういう結果になって欲しかったんだろう・・・?

159:営利利用に関するLR審議中@詳細は自治スレへ
12/04/05 20:13:18.71
3がどうこうif無しどうこうで少し前のレスに釣られてフィズバズ試してた俺はピンとキタ
こんなのしたかったんじゃないかな?
int main(){unsigned x5=32,x3=8;int x; char buf[256]; char const*p[]={buf,"Fizz","Buzz","FizzBazz"};
if ((x=atoi((gets(buf),buf)))<=0)return -1; x3>>=(x%4); x5>>=(x%6);
while(~0){sprintf(buf,"%d",x++); puts(p[(x3&1)+(x5&1)*2]); x3|=(x3<<3)&8;x3>>=1; x5|=(x5<<5)&32;x5>>=1; }
return 0; }

160:営利利用に関するLR審議中@詳細は自治スレへ
12/04/06 01:33:56.62
mallocでメモリを確保したさい、callocと同様にゼロクリアするにはどうするのでしょうか?
forで回してnilやNULLを代入してみたのですがダメでした。

161:営利利用に関するLR審議中@詳細は自治スレへ
12/04/06 01:36:51.77
面白い回答

      ↓

162:営利利用に関するLR審議中@詳細は自治スレへ
12/04/06 02:02:46.04
0クリアしたいなら最初からcalloc使えよ

163:営利利用に関するLR審議中@詳細は自治スレへ
12/04/06 02:07:12.67
calloc = clear and allocate

164:営利利用に関するLR審議中@詳細は自治スレへ
12/04/06 03:10:42.76
>>160
ゼロクリアしたいならゼロいれればいいのに。
allocと別タイミングでゼロクリアしたいんだという話ならmemsetで

165:営利利用に関するLR審議中@詳細は自治スレへ
12/04/06 03:19:30.04
Cで文脈なしにnilって言われてもなんのことやら

166:営利利用に関するLR審議中@詳細は自治スレへ
12/04/06 05:16:16.50
NUL、NULLと間違えたんじゃないかとスルーしていた

167:営利利用に関するLR審議中@詳細は自治スレへ
12/04/06 05:17:53.02
NULなんて定義はないと思うが。

168:営利利用に関するLR審議中@詳細は自治スレへ
12/04/06 05:50:21.50
NULとかnilって昔なんかでみた気がする。
VBだかCOBOLだかでなかったっけ?

169:営利利用に関するLR審議中@詳細は自治スレへ
12/04/06 05:56:03.34
>>160
int *p = malloc(100);
memset(p, 0, 100);

NILは使ったことあるな。
ただし、気象用語だったが…

170:営利利用に関するLR審議中@詳細は自治スレへ
12/04/06 06:15:33.65
NULはASCIIコードの0x00
CRが0x0d,LFが0x0aってのと同じ
nilは思いつくところでRuby,Lisp,Delphi,Luaで使われてる

171:営利利用に関するLR審議中@詳細は自治スレへ
12/04/06 06:19:05.88
C言語スレだっつーのに。
アホか。

172:営利利用に関するLR審議中@詳細は自治スレへ
12/04/06 06:47:23.02
なら、objcってことで。

173:営利利用に関するLR審議中@詳細は自治スレへ
12/04/06 07:13:23.08
なんだこのバカ

174:営利利用に関するLR審議中@詳細は自治スレへ
12/04/06 08:29:06.23
>>forで回してnilやNULLを代入してみたのですがダメでした。
こっちの方が問題だろ。なにが起きたんだよ。

175:営利利用に関するLR審議中@詳細は自治スレへ
12/04/06 08:55:41.40
URLリンク(www.kijineko.co.jp)
これでしょ

176:営利利用に関するLR審議中@詳細は自治スレへ
12/04/06 09:20:52.47
んなわけあるかボケ。

177:営利利用に関するLR審議中@詳細は自治スレへ
12/04/06 11:27:46.92
うん

178:営利利用に関するLR審議中@詳細は自治スレへ
12/04/06 11:53:08.77
でも、実際に>175が問題になる処理系はあんまりないんだよね。

179:営利利用に関するLR審議中@詳細は自治スレへ
12/04/06 12:20:19.05
パッキングによるmemcmpは普通にあるでしょ。

180:営利利用に関するLR審議中@詳細は自治スレへ
12/04/06 13:37:57.58
うん

181:営利利用に関するLR審議中@詳細は自治スレへ
12/04/06 15:05:42.27
>>178
問題になる処理系あげてみろ。
>>179
なぜ関係ない話を出す?

182:営利利用に関するLR審議中@詳細は自治スレへ
12/04/06 15:18:12.09
>>181
?

183:営利利用に関するLR審議中@詳細は自治スレへ
12/04/06 15:59:06.64
ソースコードを実行形式に変換するには、どうすればいいですか?

184:営利利用に関するLR審議中@詳細は自治スレへ
12/04/06 16:04:31.14
chmod +x ソースコード


185:営利利用に関するLR審議中@詳細は自治スレへ
12/04/06 16:21:34.92
>>184
ググったんですけど、よくわかりません・・・orz

186:営利利用に関するLR審議中@詳細は自治スレへ
12/04/06 16:28:00.84
>>185
環境は?
Linuxとかなら、「gcc ソースコード」でコンパイルされ、
a.outっていう実行形式が生成されるはずだが。

187:営利利用に関するLR審議中@詳細は自治スレへ
12/04/06 16:33:27.04
サイト主に質問したら、VC++ 2005 Express 用のプロジェクトファイルなので
VC++ 2005以降をインストールしろって言われました
自分の環境は、フリーのBccDevです


188:営利利用に関するLR審議中@詳細は自治スレへ
12/04/06 16:39:00.27
はい、解決。

189:営利利用に関するLR審議中@詳細は自治スレへ
12/04/06 17:20:25.32
BccDevを使ってコンパイルできないんですか?

190:営利利用に関するLR審議中@詳細は自治スレへ
12/04/06 17:25:46.19
まぁ手間はかかるかも知れんが、別にできんじゃね?

191:営利利用に関するLR審議中@詳細は自治スレへ
12/04/06 17:26:33.50
さぁ? できるかもしれないし、できないかもしれないし、できても動かないものかもしれないし

192:営利利用に関するLR審議中@詳細は自治スレへ
12/04/06 17:54:15.63
>>189
それを聞くようなレベルなら、VC++ 2005 Expressを入れたほうがいいよ。
金がかかるものでもないので。

193:営利利用に関するLR審議中@詳細は自治スレへ
12/04/06 22:28:19.89
うん

194:営利利用に関するLR審議中@詳細は自治スレへ
12/04/07 05:04:18.87
こんなのを質問されるサイト主も大変だ。

195: ◆QZaw55cn4c
12/04/07 10:02:14.95
>>94
めずらしいのですか?

196:営利利用に関するLR審議中@詳細は自治スレへ
12/04/07 13:54:37.48
うん

197:営利利用に関するLR審議中@詳細は自治スレへ
12/04/07 13:56:11.30
めずらしくないよ

198:営利利用に関するLR審議中@詳細は自治スレへ
12/04/07 14:20:02.83
そして結局解決できずにこんなところにまで書き込む……


199:営利利用に関するLR審議中@詳細は自治スレへ
12/04/07 21:45:18.34
で?

200:営利利用に関するLR審議中@詳細は自治スレへ
12/04/08 23:00:48.25
プログラマになりたいんですがPGやSEの仕事はきついですか?

201:営利利用に関するLR審議中@詳細は自治スレへ
12/04/08 23:06:08.24
千差万別なので一概には言えませんが概ねきついです。 つーかそんなのはマ板で訊け。

202:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 09:35:43.01
まずスレチなのに書き込んじゃう時点できついんじゃね?
少し見渡せばわかるものを

203:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 09:56:36.77
Cだと1日1000行くらいしか書けないな。

204:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 09:57:23.06
むしろ、Cは沢山かける言語だと思うけど。
1行あたりの仕事量が少ないから。

205:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 10:02:21.41
それかけるっていうよりかくだよな

206:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 10:22:34.84
Cだと1日がんばって1000行だったな。しかも1000行越えると覚えてらん
なくなって効率が落ちた。
C++を覚えたら1万行くらいまでは効率落ちなくなった。

207:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 10:29:17.61
確かにCだと一日1000行くらいが限界か…
Perlだと400行くらいで頭がパンクするわ。


208:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 10:34:11.30
1000行書けるってすげーな
頭使わなくていい部分でないとそんなスピード出せねー

209:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 10:41:20.36
コードの7割は異常処理だからな
頭使う分のコードはせいぜい300行だ

210:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 10:51:37.24
1000行もあれば大抵のことはできる。

211:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 11:17:31.24
1ファイルに1000書くの?

212:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 11:43:14.63
1000!

213:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 13:15:36.16
>>211
書くよ。

214:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 13:52:14.87
0から1000行書くだけなら簡単だろ
数万行に膨らんだ後でも改変が容易かどうかで評価されるべき

215:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 15:37:01.48
1000行で済むなんてのはコンパクトにまとめることに成功した時だな
手際が悪いとすぐ数倍に膨れあがる

216:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 17:42:58.87
1000行もあれば大抵のことはできる。

217:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 19:35:24.71
質問です。
C言語で三角関数を使わずに画面上に楕円(軸が斜めも含む)を書くプログラムを教えてください。
そもそも可能なのでしょうか?

218:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 19:37:38.47
>>217
可能です

219:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 19:39:46.74
>>217
何も考えないで書くならピクセルを端から端までなめつつ
2つの焦点からの距離の和が一定の範囲に入っている所を塗ればそれっぽくなるんじゃ
線の太さとかはきれいにならないと思うけど


220:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 20:10:46.71
>>217
URLリンク(fussy.web.fc2.com)
こんなん。ブレゼンハムの応用かな

221:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 20:32:34.33
>>217
>>220使ってみた。
URLリンク(codepad.org)

222:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 20:35:02.33
>>221
軸を傾けようぜ

223:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 20:36:22.35
>>222
それはお前への宿題な。

224:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 20:38:56.97
傾けるってことが分かってないのに得意げに
例示されてもな

225:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 20:41:14.91
affine変換すればいいだけだろ。

226:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 20:50:41.76
>>224
宿題やっとけよ。

227:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 21:00:18.31
>>225
できるのならやってみろよ

228:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 21:20:46.73
ID強制になったら面白いだろうなぁ。

229:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 21:41:53.14
面白いだろうな
QZみたいな奴が2人以上いるのかどうか

230:はちみつ餃子 ◆8X2XSCHEME
12/04/09 21:43:11.71
>>220
ミッチェナーのアルゴリズムという名前が付いている。

231:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 22:31:56.27
>>230
楕円描画アルゴリズムに?

232:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 22:47:06.44
ねぇ、なんでちょっとググればわかることを聞いちゃうの?

233:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 22:58:12.93
1.取り返しのつかないバカだから
2.他者との好意的なコミュニケーションを期待している
3.


234:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 23:03:42.78
はちみつが自信満々だから

235:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 23:10:59.98
ドヤ顔を見たいから

236:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 23:18:35.09
ともかくも
プログラミングで扱うなら
全ての描画方法に名前を付けなきゃいけない


237:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 23:43:29.07
また変なのが湧いたな。

238:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 23:46:26.82
桜が満開だからじゃないかな。

239:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 23:47:04.40
C11なんてのがあるんだ
知らんかった

240:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 23:47:23.75
桜の木の下に埋まっていればいいのに

241:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 23:55:01.69
C++11じゃなくて?

242:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 00:15:50.09
>>241
C11 は有るよ。 まだ JIS に反映されてないから日本語の資料はあんまりない。
こないだ読んでて無名共用体とか C で今まで使えなかったことを知った。
たぶん C11 をそこそこちゃんと実装してるのは gcc くらいだと思う。

243:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 00:21:34.08
>>242
そうなんだ。
今度調べてみるわ。

244:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 01:14:16.11
いやいや、プログラマは数学強くないと駄目だって。
アルゴリズム考えるのに数学の力がなきゃ歯が立たないよ。
例えば、m×n行列とn×l行列の積を求めるアルゴリズム考えられるか?
もうお手上げだよ
ちなみにループが三重構造になるんだぜ

245:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 01:24:28.43
行列の積程度で 数学強くないと かよ
アホか


246:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 01:25:36.97
それは数学とか以前に、定義からゆっくり考えろよ……
結果のm*l行列について、第i行j列の値を出すには
i行k番目とj列k番目の積を足していくんだから、そりゃ三重ループになるよ

Strassenのアルゴリズムが思いつかないというなら、
それはそうかもしれない

247:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 01:35:21.18
そもそもそんなの使う仕事が無いけどな。
研究にしたところでライブラリ使えばいい話。

248:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 03:05:07.63
35歳、喫煙歴なし
あぐらをかいていると、関節が固まるような感じがして
だんだん痛くなり30分もすると立つことすらできなくなります。
足を投げ出して(これがすでに大変)数分も放置すれば
回復するのですが、これは何科にかかるべきでしょうか。

249:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 03:12:53.23
とりあえず偉そうに言う奴はまずcodepadに自分のコード書いてうpれよ
大言博ならその後にしろよ

250:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 03:14:46.33
お前は何もできないくせに偉そうだな。

251:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 03:42:32.15
>>248
たぶんただの老化だと思う

252:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 08:43:48.64
>>160に回答して頂いた方々ありがとうございます。
nilはObjective-Cの値です。スレチかなとも思いましたが、
オブジェクトをCの配列に入れるのに配列要素(オブジェクトのポインタ)がゼロクリアされていなければいけないらしく
そのために確保と同時にゼロクリアするcallocを使わないとダメと書いてあったのですが、malloc+アルファの処理でcallocと同じことが出来ないか?
と思い、その範囲(mallocを使ってcallocと同じ事をする)ならCの範疇だろうということで質問させて頂きました。
素直にcalloc使えということになるのでしょうか?

253:はちみつ餃子 ◆8X2XSCHEME
12/04/10 09:14:13.17
>>252
ちょっと確認だが >>160 の「ダメでした」というのはオブジェクトを配列に入れることが出来なかったという意味か?
どういう挙動から出来ていないと判断した? 何かエラーメッセージでも出るのか、それとも seg fault になるのか?
>>174 も言っていることだが、何が起きているのかわからんので回答のしようがない。

C では特に代入にゼロクリアが必要とか無いし Objective-C の仕様でゼロクリアがどう関係してくるのかなんて知らんがな。
C スレ的には for 回しても memset でもゼロクリアはできるんでそこから先は素直に Objective-C のスレで訊けよ。

254:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 10:23:49.15
>>246
三重ループくらいなら直接for文書くが、4重以上の時はループ1個で済ませたりする。

255:217
12/04/10 11:00:20.51
>>217へのご回答をいろいろして頂きありがとう御座います。
>>222さんが云われているように、軸を傾けるにはどう対処すればいいでしょうか?
なるべく整数だけの計算で済ませたいのですが、可能でしょうか?(sqrt()とか使わない条件です。)


256:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 12:48:37.43
>>252
> ゼロクリアされていなければいけないらしく
スレチだとおもうなら、このソースを出したほうがいいんじゃないの。

> そのために確保と同時にゼロクリアするcallocを使わないとダメ
なのになんでcalloc使わないの?反骨精神?

257:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 13:13:23.57
初心者が自分なりの工夫とか、10年早いんじゃね

258:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 13:14:51.79
ループでもmemsetでもゼロクリアできるじゃん。

259:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 15:30:21.52
C++難しすぎワロタ、キャストだけで4種とかないわ

260:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 15:45:10.98
スレ違いくそワロタ

261:はちみつ餃子 ◆8X2XSCHEME
12/04/10 15:51:37.43
>>259
一種類にいくつもの意味を持たせている C の方がムズい。

262:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 16:21:49.31
ひとつだと割り算だけどふたつだとコメントとか
冷静に考えれば気が狂った仕様だよな・・・

263:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 16:46:50.69
割ってかけたら、かけて割るまで無視されるからな。

264:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 16:48:15.89
割ると掛けるでコメントってのも似たようなものだろ。


265:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 16:49:34.99
ポインタの -> が一番違和感感じたわ。
何?この矢印モドキ。

266:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 17:10:57.59
そんなところで引掛ってるからお前はずっと間抜けのまんまなんだ

267:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 17:16:39.27
266「他人を非難出来る俺ってカッコイイ!!」


268:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 17:28:17.33
このいかにも春っぽいテンションの人って一人でいいのかな。
一人があちこちのスレにいたりするのかな。
そんなことはなくて何人もいるからこそ春なのかな…

269:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 17:29:40.26
->を使わなければ(ry

270:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 17:35:17.51
>>267
そんなこと言ってるからお前は間抜けのままなんだよ。

271:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 17:51:31.28
深い意味なんてないただの決め事をあーだこーだ言ってもしょうがないだろ

272:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 18:28:10.25
コードの読みやすさはRubyが最強伝説
読みやすさならCではとうていかなうまい。
全てオブジェクトだから統一感もある
コメントも#で始まって読みやすいぞォ
識別子に?が使えるのも素晴らしい
if stack.empty? ・・・とか書ける訳だ
Cも見習って欲しいな

273:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 18:35:32.62
RubyとかLinuxインストールしたときに最初から入ってない時点で論外

274:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 18:59:13.53
だよね
Pythonのほうが読みやすいし

275:はちみつ餃子 ◆8X2XSCHEME
12/04/10 19:46:18.52
それは Gauche ユーザの俺への挑戦か

276:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 20:36:42.42
>>259
なるほど、おまえさんには難しすぎるようだな
4種類じゃなく無数にあるぞ

277:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 20:38:58.51
>>272
断る!

278:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 21:14:36.14
>>272
メソッドにしか?は使えねーぞ

279:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 22:33:48.29
BYTE列から指定フォーマットで変数代入したいんだけど、どうやんの?
fscanf(fp, format, ...)みたいなこと簡単にできないかー

280:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 22:40:30.69
sscanf?

281:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 22:42:24.81
sscanf(const char *str, const char *format, ... );

282:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 22:50:36.47
gj!
>>280 >>281

283:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 00:16:16.96
rubyはメソッドチェーンが最高にガンだからなぁ

284:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 01:47:38.03
おまえら時代はPHPだよ。
俺もHTMLの中に書くだけの簡単なスクリプト言語でしょ
なんて馬鹿にしてたんだけど、これがC言語とPerlのいいとこ取りで
機能的にも足りないところはほとんど無い感じ。
WEB言語なんてイメージとどまらずにC言語の標準入出力ライブラリーにPerlの文字列操作、
画面ライブラリーにHTMLを使えると思えば良いんじゃないのかな。
キーワードはHTML5、JavaScript、そしてPHP。
これが世界の最先端開発環境で間違い無しだよ

285:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 02:16:37.13
PHPは文字列なのか数値なのかいまいちはっきりしてないし
開発チームがセキュリティにかなり無関心というのも気にくわない

286:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 02:30:39.05
ンなこと言ったら
C言語は型にうるさすぎて
しかも肝心の型がデフォで少なすぎる
てな話になる

100文字の文字列と100個の数字
同じように見えるけど
100個の数字のほうはCじゃムリじゃん

287:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 03:00:18.39
なんだ100個の数字って。
ひょっとして100桁の数値といいたのか?

288:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 03:09:21.79
0000000000012322
こういう数字のカタマリは
どーなるんだよ
っちゅーことだよ


289:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 03:17:36.70
アホとは話にならんな、まったく。

290:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 04:02:46.75
PHPスレからでてくんな

291:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 04:04:54.37
>>288
PHPだと文字列なら文字列、数値なら数値
Cだと文字列なら文字配列、数値なら8進数の数値

292:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 04:25:52.01
なんだ、結局COBOLが最強だったのか

293:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 08:12:50.35
>>292
桁数で言えば実際強いよねCOBOL

294:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 08:13:40.69
もうアセンブラでいいよ。

295:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 16:24:18.64
だね

296:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 16:28:04.03
COBOLは帳票向けの言語だから、数字処理が得意ってだけ
科学技術計算はfortran使うって、昔は住み分けてたんだけどね

297:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 16:35:48.68
PHPerは何がしたかったんだろう…

298:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 17:02:57.39
CではなくWindows APIなのですが
数値の表示方法(エラー表示)はどうすればいいのですか?

Cだと
文字表示
printf("hello");

数値表示
int i = 10;
printf("%d", i);

Winodows APIだと
文字表示
MessageBox(NULL, "hello", NULL, MB_OK);

数値表示
???


299:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 17:04:17.84
>>298
sprintf で文字列に変換する

300:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 17:20:24.63
>>298
#include <stdio.h>
#include <stdlib.h>

301:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 17:35:47.37
ありがとうございます。できました

char c[100];
sprintf(c, "%d", 10);
MessageBox(NULL, c, NULL, MB_OK);
でも3行かかってしまいました

printf("%d", 10);のように
みなさん、どうやって一行で表示してますか?

302:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 17:38:04.76
可変長引数を受け取る関数を自作してその中で。

303:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 17:54:38.08
ありがとうございます。一行で表示することができました

304:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 18:20:30.15
いえいえ

305:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 18:22:56.61
OutputDebugStringというのもあるんだけどな

306:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 19:00:11.59
>>301
デバッグ用なら AllocConsole と freopen しとけば
普通に printf や perror が使える

# もっとも俺はそんなことしない
# GUI はデバッグ情報が膨大すぎるので
# 絞り込みの工夫・・・というかデバッグ自体をきちんと設計する必要がある

307:デフォルトの名無しさん
12/04/11 20:54:42.11
韓国 「韓流が大ブームと言っているのは広告代理店だけ。心配になってきた」
スレリンク(poverty板)


【韓国BBS】日本人は、中国よりも韓国が好きなのか??
スレ主が日中韓3カ国が互いに持つ感情について、自身の考えを述べた。
・「中国には今なお反日感情が根強く残っている。そして日本人たちは、いつか中国人が自分たちに
過去の恨みから報復すると考えているようだ。そのため、日本は中国より韓国を好むのでは」

スレ主の意見に対して、日本には嫌韓の存在があるとの反論が目立った。

・「最近は、本当に韓流なのか分からない。中国、日本で反韓気流がとても激しくなっています」

・「日本の嫌韓、またはネット右翼に一度会ってみたら?」

・「中国では幼い時から日本のアニメに接し、東京へのあこがれから親日派が多くなっていると聞いた。その反面、韓国を嫌いになる人々が多くなっている」

・「わが国は、緩衝地帯ですか?中国も日本も両方消えてしまえばいい」

  一方で、アジアの二大大国に挟まれた韓国の状況を危惧する声もある。

・「日本は経済大国、中国は浮上する新星。私たちは、それらの間で様子をうかがっているだけにすぎない。決してうれしい状況ではありません」
URLリンク(news.searchina.ne.jp)

308:デフォルトの名無しさん
12/04/11 21:27:43.30
名無しがもとにもどった‥‥‥

309:デフォルトの名無しさん
12/04/12 00:02:57.50
void my_strcat(char *dest, char *source){
while (*dest++);
while (*dest++ = *source++);
*dest = 0x00;
}

main(){
char fname[128];
char ext[] = ".csv";
strcpy(fname, "filename");
my_strcat(filename, ext);
printf("%s\n", filename);
}

実行結果がfilename.csvと出力されないのは、文字列リテラルは書き換えができないからでしょうか。

310:はちみつ餃子 ◆8X2XSCHEME
12/04/12 00:10:29.79
>>309
> while (*dest++);
これが問題じゃね?
考えると *dest == '\0' であることがわかった後に ++ してるんだから、
この文が終わった時点で dest が指しているのはヌル終端の一個後ろだろ。
while (*dest) dest++;
に書き換えればいいと思うよ。
実際に動作させずに言ってるし酒飲んでるから間違ってたらごめんな。

311:デフォルトの名無しさん
12/04/12 00:15:12.40
>>309
X while (*dest++);


312:デフォルトの名無しさん
12/04/12 00:16:15.52
>>309
#include<stdio.h>

void my_strcat(char *dest, char *source)
{
while (*dest)dest++;
while ((*dest++ = *source++));
}

int main()
{
char fname[128];
char ext[] = ".csv";
my_strcat(fname, "filename");
my_strcat(fname, ext);
puts(fname);
return 0;
}

313:デフォルトの名無しさん
12/04/12 00:16:37.91
略した書き方しないで普通にif文やら配列やら使って分かりやすく書けよ。結局自分でも分からなくなってるジャン

314: ◆QZaw55cn4c
12/04/12 00:20:44.79
>>309
URLリンク(codepad.org)

315:デフォルトの名無しさん
12/04/12 00:30:10.13
>>313
なるほど >>312 には「自分は解ってません」て書いてあるな
werror 君ぽい滑稽な作風も痛い

316:デフォルトの名無しさん
12/04/12 00:33:20.57
ま た チ ョ ン か。

317:デフォルトの名無しさん
12/04/12 00:38:38.93
脳なんたらの?www

318:デフォルトの名無しさん
12/04/12 00:53:07.41
皆様ありがとうございます。
はじめのwhile (*dest++);
これが間違っていたのですね。
>>313さんの仰るとおり、カッコつけた書き方はやめて、誰が読んでもわかるようなコーディングを身に着けていきたいと思います。
それにしても、Cはどうしてこう、複雑に書けるようになっているのでしょうか。
実行速度が求められるから?


319:デフォルトの名無しさん
12/04/12 00:58:28.67
そもそもなんでstrcatを使わないんだ?
勉強ならstrcatのソースを読めばいいのに。

320:デフォルトの名無しさん
12/04/12 00:59:20.63
>>318
それが当時の計算機に一番素直な形だったからだよ。

321:デフォルトの名無しさん
12/04/12 01:13:13.49
自分に実力をつけて、自信を持ちたいというのがあります。
ライブラリにある、システムコールのない関数のアルゴリズムを考えることくらいはできた方がいいかなと思いました。
これまでにstrlen(),strcpy(),memset(),atoi()など、簡単に実装出来そうな関数は作ってみたのですが。
どうやったら実力がつくのかなあ。
ちょっとパスカルを勉強して、コーディング作法を身につけたりしたほうがいいのかなあ。
優秀なマになりたいのです(´Д` )

322:デフォルトの名無しさん
12/04/12 01:14:46.98
だったらソースを読めって。
strcatのソース読んだのか?

323:デフォルトの名無しさん
12/04/12 01:18:17.47
アセンブラで書かれてました。

324:デフォルトの名無しさん
12/04/12 01:21:48.88
珍しく基本を押さえたことしてるのが...

325:デフォルトの名無しさん
12/04/12 01:28:15.90
>>321
アルゴリズムの本買ってソートを順番にやっつけてこうぜ

326:デフォルトの名無しさん
12/04/12 02:33:06.15
>>318
その複雑に見えるのは、難しそうに見えているだけじゃないかな。
惜しいところはいくつかあるけど、素直な方針でやれてるので、その調子でとしか。

327:デフォルトの名無しさん
12/04/12 05:14:04.93
>>321
その意気やよし
自分でコードを書くこともいいが他人のコードを読むのもいいぞ
LinuxやFreeBSDなどの様々なコマンドのソースを読んでみるがよい

328:デフォルトの名無しさん
12/04/12 07:50:41.78
>>321
スレリンク(tech板)

329:デフォルトの名無しさん
12/04/12 11:32:27.47
>>318
頼むから後置++ ごときで「複雑」とかやめてくれ
マシン自体がもともとそのようにできているのだから (例: PC, SP)

330:デフォルトの名無しさん
12/04/12 11:37:38.35
>>329
そこじゃなくて評価順の理解がまだ不十分なだけだと思うよ。
あとその例はおかしいよな。たとえ前置インクリメントと読み替えたとしても、それである必要性がない

331:デフォルトの名無しさん
12/04/12 11:41:20.51
>>330
空想論か? それとも RISC の PC が前置だとでも言いたいのか?
ポインタの更新が直列と思い込んでいるほど ++ が不可解に見えるだけだ

332:デフォルトの名無しさん
12/04/12 11:54:58.79
一般的に、スタックポインタは前置デクリメントだけどね。
問題は、CPUがどうかじゃないよ。
C独特の手っ取り早く済ませるスタイルも書けないまでも読めないとね。

333:デフォルトの名無しさん
12/04/12 12:01:32.60
>>332
順序が逆だ。書けなければ読めない。

334: ◆QZaw55cn4c
12/04/12 12:31:38.90
>>331
モトローラの石は後置インクリメント、前置デクリメントじゃなかったっけ?

335:デフォルトの名無しさん
12/04/12 12:36:33.62
>>332
書かないまでも読めるべき。書けるのは前提。

336:デフォルトの名無しさん
12/04/12 12:57:25.44
char * straycat(char * restrict s, const char * restrict append) {
char *r = s;
char *a = "2回○ね~っ";
for (; *s; ++s);
while (*s++ = *a++);
return r;
}

337:デフォルトの名無しさん
12/04/12 13:05:08.66
>>334
たった1つしか知らないくせにモトローラのとかwww

338:デフォルトの名無しさん
12/04/12 13:34:45.76
>>312
綺麗に書こうぜ。

void my_strcat(char *dest, char *source)
{
while (*dest) dest++;
for (;;) {
*dest = *source;
if (*dest == '\0')
break;
dest++;
source++
}
}

339:デフォルトの名無しさん
12/04/12 13:38:31.94
きたねぇ。

340:デフォルトの名無しさん
12/04/12 13:44:13.07
10のなんとか乗を表すのにeとEがありますが
今まで意識せずにeを使ってましたが別にどっちでもいいんですよね?

341:デフォルトの名無しさん
12/04/12 13:49:24.33
いいんです。

342:デフォルトの名無しさん
12/04/12 14:09:01.60
>>332
で、後置はどうなんだ? デクリメントか?
C 独特というのは間違いだぞ

>>337
もう一度聞く、空想論か?

343:デフォルトの名無しさん
12/04/12 14:16:38.55
普通、pre-increment/post-decrementだな。

344:デフォルトの名無しさん
12/04/12 14:33:17.95
>>318 K

345:デフォルトの名無しさん
12/04/12 14:35:16.02
>>318
K&R本の付録A参照マニュアルのA13:文法(295ページからの6ページ)を
なにも見ずに空で書けるようになるまでは、K&R本を捨てない方がいいですよ
とだけ言っておく

346:デフォルトの名無しさん
12/04/12 14:37:07.89
そんなもん書くやついねぇ。

347:デフォルトの名無しさん
12/04/12 16:21:55.20
>>342
こいつ、何言ってんの?

348:デフォルトの名無しさん
12/04/12 16:40:26.68
おい 今日からプログラムを始めようと思うんだ
それでC言語やればいいみたいってとこまでわかったんだ
そんでコンパイラってのがいるってのもわかったんだ
俺に最適なコンパイラを教えてくれ
勿論フリーで
俺のスペックは14歳の女子だ

349:デフォルトの名無しさん
12/04/12 16:44:43.59
つくーる いじってろ。

350:デフォルトの名無しさん
12/04/12 16:45:46.82
なんで俺がプログラムに目ざめたかといえばだ
クラスメイトの奴がアプリ開発しやがってなんかちょっと羽振りがよさそうだから羨ましくなったんだ
きいたら半年くらいあればアプリ開発までいけるって言ってたから
俺も頑張ってその金でカラコン買いたいんだ

351:デフォルトの名無しさん
12/04/12 16:48:22.21
>>349
早く教えてくれよ

352:デフォルトの名無しさん
12/04/12 16:50:06.47
カラコン買ってコスプレしてカシャカシャフラッシュを浴びまくりたいんだよ
そんでその写真が大物監督の目にとまって映画デビューするんだ
そのためにはコンパイラは避けては通れないんだ

353:デフォルトの名無しさん
12/04/12 16:57:31.62
春だなぁ。
学校にはちゃんと行けよ。

354:デフォルトの名無しさん
12/04/12 17:04:18.10
ケチなお前らが教えてくんねんから一応
Visual C++ 2010 Express
をインストール中だ
いいのか?これで?

355:はちみつ餃子 ◆8X2XSCHEME
12/04/12 17:09:37.73
いいよ。

356:片山博文MZボット ◆0lBZNi.Q7evd
12/04/12 17:09:58.89
>>354 VC++ Express 2010は遅すぎ。2008の方がいい。
2008のDVDのISOイメージをダウンロードしてこれを使え:
URLリンク(www.slysoft.com)

357:片山博文MZボット ◆0lBZNi.Q7evd
12/04/12 17:11:32.83
で、どんなもん作りたいんだ?

358:デフォルトの名無しさん
12/04/12 17:14:13.08
>>356
マジか さんクソ
今いれたの早速削除するわ
俺のOSはW7だけど大丈夫だよな?

>>357
バカ売れするアイフォンアプリを作りたいんだが
どんなんが売れるんだ?

359:デフォルトの名無しさん
12/04/12 17:15:44.05
ちょっと図書館いってくるわ
閉まっちゃうから早くいかないと
C言語の本借りてくるわ
あとラノベと

360:片山博文MZボット ◆0lBZNi.Q7evd
12/04/12 17:18:53.16
>>358 iPhoneだったら、MacのiOSかその互換OSが必要だよ。
Visual C++じゃ無理。

361:片山博文MZボット ◆0lBZNi.Q7evd
12/04/12 17:21:55.58
ごめん、iOSじゃなくてMac OS Xだった

362:デフォルトの名無しさん
12/04/12 17:21:57.14
>>358
最後の一行が致命傷だ
提案力ないやつはどんなに頑張っても決して報われない

363:デフォルトの名無しさん
12/04/12 17:30:47.28
何が売れるかわかったら、さっさと引きこもる。

364:はちみつ餃子 ◆8X2XSCHEME
12/04/12 17:34:46.47
技術的には割としょーもないもんでもウケてるのあるからな。
売れ筋を見極める目がないようではだめぽ。
つーか、そんなんわかるんだったら自分で作るわ。

365:デフォルトの名無しさん
12/04/12 17:52:54.89
携帯のアプリ作りたいならJavaだろ

366:デフォルトの名無しさん
12/04/12 17:53:29.40
>>360
マジで?
マックねえとアイフォンアプリ作れんの?
困るじゃねえか
>>362
いいの とりあえずCから学ぶの


367:片山博文MZボット ◆0lBZNi.Q7evd
12/04/12 17:59:12.43
WindowsでiPhoneアプリ開発は、ハードル高すぎ。iPhone持ってる?
URLリンク(blog.makotokw.com)

368:デフォルトの名無しさん
12/04/12 18:01:27.01
オブジェクティブCってので書けば出来ると思ってたんだが
違うのか?

369:片山博文MZボット ◆0lBZNi.Q7evd
12/04/12 18:05:35.25
>>367 どう考えても貴様様にはご無理でしょう。
iPhoneアプリを開発するには、iPhone SDKが必要。
iPhone SDKを動作させるには、Mac OS Xかその互換OSが必要。
初心者は、おとなしくMac買うんだな。

370:デフォルトの名無しさん
12/04/12 18:05:59.51
>>367
アイフォンは持ってるよ 4S
じゃあマックを手に入れるのが先なのか
という事はその金はアンドロイドアプリの開発で稼ぐしかないのかな

371:デフォルトの名無しさん
12/04/12 18:07:45.75
よく考えたらカラコンよりマックのほうが高いじゃねえか

372:デフォルトの名無しさん
12/04/12 18:09:19.27
あれだな。
自宅業務内職のために、まずワープロ買わせる、みたいなビジネスモデルだな。


373:デフォルトの名無しさん
12/04/12 18:13:06.16
詐欺にひっかかった気分だ
ラノベよも

374:デフォルトの名無しさん
12/04/12 18:15:50.23
何をしたらいいかわからん奴におすすめは脱獄

ひたすら悪さばっかりするクソガキやってると
その頃の生活の知恵が後に糧となっている

375:デフォルトの名無しさん
12/04/12 18:19:54.84
アプリ開発で金稼ぐ自信があるならウィンドウズ向けにアプリ作ってvectorあたりにシェアウェア登録して金儲けしてみろよと何でもしもしならうまくいくと思えるんだ

376:デフォルトの名無しさん
12/04/12 18:22:47.29
一応もしもしのほうが金が取りやすいのは間違いない

377:デフォルトの名無しさん
12/04/12 18:23:05.45
ちょっと調べてみたが
インテルCPU積んでるマックならいいのか?
スペックとかうんこでも

378:片山博文MZボット ◆0lBZNi.Q7evd
12/04/12 18:31:04.20
>>377 原理的には可能。多少いらつくと思うけどね。

379:片山博文MZボット ◆0lBZNi.Q7evd
12/04/12 18:34:21.08
URLリンク(www.atmarkit.co.jp)

380:片山博文MZボット ◆0lBZNi.Q7evd
12/04/12 18:35:21.29
Mac OS XじゃなくてIntel Macだったようだね。あやふやな知識でごめん。

381:デフォルトの名無しさん
12/04/12 18:37:07.34
そうか
ねだって買ってもらった7のミニノートがあるんだフロンティアの
1年以上使ってないからまずそれを売ろう
あとX箱のソフトとか売って
さらにアイフォン3Gの本体あるから売るわ
そんで中古のマックMINIとか買えばいいな

382:デフォルトの名無しさん
12/04/12 18:37:44.23
>>380
いや 色々ありがとう
パンツのひとつもあげたいくらいだ

383: ◆QZaw55cn4c
12/04/12 18:38:35.06
>>343
逆じゃない?例:スタックポインタ

384:デフォルトの名無しさん
12/04/12 18:39:14.70
問題はミニノート以外は妹の持ち物という事だが
最近スカイリムを買ってもらって夢中だから気づかないだろう

385:330
12/04/12 18:40:09.54
>>342
ええと、なんかがんばってたんだな。

たとえばSPが後置インクリメントである環境を用意するよね。
>>329は、マシン自体がそうなってるから、
それを複雑というのはやめてくれという主張だよね。

これがどれだけおかしな主張だったり例であるかがわからないの?

386:片山博文MZボット ◆0lBZNi.Q7evd
12/04/12 18:40:19.55
Mac OS X 10.5.3以降必須って書いてあるぞ。

387:デフォルトの名無しさん
12/04/12 18:49:36.22
AndroidならLinuxでJavaでタダじゃないの

388:デフォルトの名無しさん
12/04/12 18:50:57.52
何! OSも新しいのがいるのか
2万以下で買えるかな・・・

389:デフォルトの名無しさん
12/04/12 18:51:17.98
>>385
方言が強くてわからへん、何言うとんねん

390:デフォルトの名無しさん
12/04/12 18:56:42.08
>>387
なんかさ アンドロイドのアプリは端末の使用がいっぱいあって開発がめんどくせえんだろ?
どっかの会社が開発コストかかりすぎて儲からんってアンドロイドからは撤退してたじゃん

391:デフォルトの名無しさん
12/04/12 20:39:15.74
>>390
あれ、ネイティブコードをばりばりつかってるゲームだからじゃね?

392:デフォルトの名無しさん
12/04/12 21:48:04.92
あえてネイティブコードで書かないと性能が出ないってのも困りモンだな

393:デフォルトの名無しさん
12/04/12 23:22:15.10
あるshift-jisで書かれたテキストファイルを読み込み、
multibytetocharおよびwidechartomultibyteを使ってutf-8に変換して、
またファイルに書き出してます。

ですが、ファイルの末尾を書き出すと、その末尾の文字は正しく書き出されるのですが、
その後ろに数倍とぐらいゴミみたいなデータが書き込まれてしまいます。
これってどんな原因が考えられるでしょうか

394:デフォルトの名無しさん
12/04/12 23:31:27.58
>>393
マニュアル嫁

395:デフォルトの名無しさん
12/04/12 23:33:16.69
>>393
余分に書き出している。

396:デフォルトの名無しさん
12/04/12 23:33:42.25
> あるshift-jis
shift-jisにはいくつかの種類があんのか?
それとも「shift-jisで書かれたとあるテキストファイル」なのか?
日本語くらいはしっかり使えアホ

> 数倍とぐらいゴミみたいなデータ
そのバイト列は具体的にどんなもんで
いつも同じなのか
それとも違うのか
そんくらい書けよバカ


397:デフォルトの名無しさん
12/04/12 23:49:04.22
などと意味不明な供述をしており

398:デフォルトの名無しさん
12/04/13 00:18:29.96
mallocで領域を確保するといいますが、確保しただけじゃ領域に書き込む事って不可能では?
実際 int *m; m=malloc~~だと
ポインで与えられるので、目的の領域に数値を書き込めなくない? と思うのですが。

399:はちみつ餃子 ◆8X2XSCHEME
12/04/13 00:20:07.91
>>398
なんでやね~ん。

そんなことより、ただの typo だとわかっていても「ポインで与えられる」という言葉が妙にツボった。

400:デフォルトの名無しさん
12/04/13 00:27:05.52
>>398
確保された領域の記憶保護については未規定ということか
よく思いついたね、でっていう

401:デフォルトの名無しさん
12/04/13 01:13:28.26
>>398
この辺のいきさつは規格に何か書いてあったような記憶がある
malloc()で確保した領域に書き込み出来る事が保証されてないのなら
多くのプログラムが書けなくなってしまうからな

402:デフォルトの名無しさん
12/04/13 01:30:58.60
なんだここ
随分上から目線のやつがいるんだな
俺よりレベル下のくせによ
まあいい
明日また来るよ

403:デフォルトの名無しさん
12/04/13 01:34:20.52
だってchar *t;の場合tの指し示す領域に書き込みするにはstrcpyとか必要でしょう?
int *tの場合は、ポインタ経由で同じ領域に書き込めるのは何故かなと。

404:デフォルトの名無しさん
12/04/13 01:39:31.83
>>403
バカ発見

char *p; が既に領域確保済みなら

*p = 'a'; と書き込み可能

あんたが言ってるのは文字列のコピーであって、全く意味が異なる

405:デフォルトの名無しさん
12/04/13 02:16:31.68
>>396
> shift-jisにはいくつかの種類があんのか?
まるで「種類なんてないだろ?なんでこう取れる書き方をした?」とでも言いたそうだけど。

406:デフォルトの名無しさん
12/04/13 02:31:00.75
Cの参考書で、分かり易いものがあったら教えて貰えませんか?

407:デフォルトの名無しさん
12/04/13 02:40:39.33
いまどのレベルなの

408:デフォルトの名無しさん
12/04/13 02:49:04.32
C実践プログラミング

409:デフォルトの名無しさん
12/04/13 13:54:19.18
3000バイトぐらい確保したバッファの末尾部分だけを見たいんですが、
デバッガでブレークポイントで停止しても最初の100バイトぐらいしか見れません
どうにかして末尾部分を見る方法ないっすか?

410:デフォルトの名無しさん
12/04/13 14:08:25.68
>>409
デバッガの使い方は他のスレで。
つーか、あんたがどんなデバッガ使っているかわからんのに答えろとでも?

411:デフォルトの名無しさん
12/04/13 14:29:08.14
気がきかねーな
デバッグつったらVCしかねーだろ

412:デフォルトの名無しさん
12/04/13 14:55:10.94
正解を見つける前に工夫して何とかすることができない限り未来は暗い

413:デフォルトの名無しさん
12/04/13 14:58:23.60
工夫する前に過去事例をチャッチャと見つけられない限り未来は暗い


414:はちみつ餃子 ◆8X2XSCHEME
12/04/13 15:01:09.78
>>411
なんでやね~ん

415:デフォルトの名無しさん
12/04/13 15:01:37.08
つーかファイル出力するとか色々やり方はあるだろ

File* fp = fopen("dbg.txt", "wb");
for(int i=0; i<3000; i++)
  fputc(data[i], fp);
fclose(fp);

たった4行でできるのに馬鹿じゃね

416:デフォルトの名無しさん
12/04/13 15:12:57.09
バーロー
ファイルに出力するときにもう解読不可能な文字になってるから、
文字コードを見たいんだよ

417:デフォルトの名無しさん
12/04/13 15:15:38.41
バイナリエディタで開くかsprintfで16進に変換した跡で出力

418:デフォルトの名無しさん
12/04/13 15:25:37.92
fprintf("%02X " , data[i] & 0xff);
こんな感じでいいんじゃね?

419:デフォルトの名無しさん
12/04/13 16:24:16.48
>>416
じゃぁ、メモリみても意味なくね?

420:デフォルトの名無しさん
12/04/13 16:43:30.70
デバッガ名乗って>409ができないとかあり得ない
VCならウォッチにptr+2900, 100とかデバッグ→ウィンドウ→メモリとか

421:デフォルトの名無しさん
12/04/13 16:51:27.43
名乗るほうのデバッガじゃないと思うよ

422:デフォルトの名無しさん
12/04/13 16:53:52.86
gdbなら全部見るオプションがあるね

423:デフォルトの名無しさん
12/04/13 17:15:03.00
だから、スレ違いなんだから相手にすんなよ。

424:デフォルトの名無しさん
12/04/13 17:35:51.40
一週間前に買ったC言語入門編の本を読み終えそうなんだけど
次、どの本読めばええの…

425:デフォルトの名無しさん
12/04/13 17:50:53.20
バイナリエディタを忘れてた
ありがと

426:デフォルトの名無しさん
12/04/13 18:05:27.15
>424
コンパイラのマニュアル
他人の書いたソース

427:デフォルトの名無しさん
12/04/13 18:07:39.42
>>424
本屋でぺらぺらめくって、知ってることと知らないことが書いてある本を探す

428:デフォルトの名無しさん
12/04/13 18:14:03.87
>424
PC9801プログラマーズバイブル


429:デフォルトの名無しさん
12/04/13 18:28:56.86
C言語を256倍使う本


430:デフォルトの名無しさん
12/04/13 18:31:53.31
堀紘一 著
「一番いいのはサラリーマン」
「サラリーマンなんか今すぐやめなさい」

431:デフォルトの名無しさん
12/04/13 18:34:43.16
>>424
Effective C++

432:デフォルトの名無しさん
12/04/13 18:35:24.54
>>431
いい本だがC++じゃん。

433:406
12/04/13 19:34:26.44
>407-408
ありがとうございました。繰り返しとか条件分岐は分かる程度です。

434:424
12/04/13 19:50:51.20
ふむ。サンクス
とりあえず本屋よってみる

435:デフォルトの名無しさん
12/04/13 19:51:42.87
ゴミデータが書き出される理由がマジわかんね
誰か助けてくれよ

436:はちみつ餃子 ◆8X2XSCHEME
12/04/13 19:54:09.12
>>435
再現可能なコードを提出すること。

437:デフォルトの名無しさん
12/04/13 20:17:35.21
末端と思っている箇所が末端として伝わらないファイル書き出しをしてるとエスパー

変換の過程で得られるであろうバイト数(or 文字数)を利用して fwrite() してるのか
\0 終端を期待して fprintf() してるのか

438:デフォルトの名無しさん
12/04/13 20:36:07.37
最後はstrlenを使ってバイト数を出して、
fwriteのバイナリモードで書き出してる。
fprintfって\0まで書き出してくれるっていう仕様だっけ?
やってみる。

439:デフォルトの名無しさん
12/04/13 20:40:46.24
fprintfで書き出しても一緒だった
じゃあヌル文字の前に何故かゴミが入ってるってことか。
くそっ
UTF-8変換の過程で末尾に変なゴミが入る原因って何だよ!!
末尾以外の文字は完璧に変換できてるっていうのに!!

440:デフォルトの名無しさん
12/04/13 20:40:54.21
pとqというリストをもらってpの後ろにqを連結するプログラムを作りたいのですがこれで実行するとpのリストしか表示されません
なぜこれではリストの連結ができないのでしょうか
リストを表示するプログラムはこの中にあるのと同じような条件でやっています。
実行結果は
p= 10 20 30,q= 40 50 というリストがあった場合
10 20 30 と出力されます
struct cell *append(struct cell *p, struct cell *q)
{
struct cell *k, *h;
h=(struct cell *)malloc(sizeof(struct cell));
k=(struct cell *)malloc(sizeof(struct cell));
k=p;
h=k;
while(p!=NULL)
{
printf("%d %d\n",p->value, k->value);
p=p->next;
k=k->next;
}
k=(struct cell *)malloc(sizeof(struct cell));
k=q;
while(q!=NULL)
{
printf("%d %d\n",q->value, k->value);
q=q->next;
k=k->next;
}
return(h);
}

441:デフォルトの名無しさん
12/04/13 21:16:45.78

 ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ 

 ★ 本日13日(金)よる10時より 《人権救済機関設置法案反対ツイッターデモ》開催 ★

  ツイッターしている人は、ハッシュタグに#人権救済機関設置法案反対#nhk24をつけて、この法案の
  危険性、抗議の法案などをいっせいに呟きましょう。
  ツイッターと連動している「NEWS WEB24」に取り上げてもらいましょう 。

 ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ 


442:デフォルトの名無しさん
12/04/13 21:38:14.71
>>440
リストpの後にqをつなげているように見えないけど?

443:デフォルトの名無しさん
12/04/13 21:48:46.55
>>440
こんな感じ?
URLリンク(codepad.org)

444:デフォルトの名無しさん
12/04/13 22:00:27.03
お漏らししてるw

445:デフォルトの名無しさん
12/04/13 22:24:20.27
そもそも引数で既存のリストふたつのアドレス受け取ってるのに、
なんであらたにmallocしてるのかがよくわからないんだけど
こんな感じじゃいかんの?
URLリンク(codepad.org)

446:デフォルトの名無しさん
12/04/13 22:33:33.53
>>445
うん、それ

447:デフォルトの名無しさん
12/04/13 22:42:46.73
>>439
Win32 の WideCharToMultiByte とか MutiByteToWhideChar 使ってるのか?

これの戻り値は終端の \0 を含まない文字数を返すから
文字列として(つまり \0 で終わることを保障するように)扱いたいのならば
必要なバッファの大きさは 戻り値+1 であり
変換前に領域を 0 で埋めるか バッファ[戻り値] = 0 と終端を付加しないと
その後の文字列処理(例えば strlen 等 \0 終端前提の関数)が成立しないぞ

448: ◆QZaw55cn4c
12/04/13 23:10:35.52
>>447
win32api はそういうのが多いのかな?
*(DWORD *)buff = N;
n = SendMessage(hwndEdit, EM_GETLINE, i, (LPARAM)buff);
InnerBuff[n] = 0;
のセットに気がつくまで苦吟した。

449:デフォルトの名無しさん
12/04/13 23:23:07.08
>>448
文字を操作するのはほとんどそういうの

所々「文字数」だったり「バイト数」だったりで
動的確保時に要注意の奴があったようななかったような

450:デフォルトの名無しさん
12/04/14 01:12:41.72
>>447-449
それやってもダメだった。
なんかゴミが書き出されないときと書き出されるときがあるんだよな。
それぞれ読み込んでるファイルは違う。

コードはこんな感じ

void Write(char *buf,FILE *fp)
{
int nsize;

WCHAR *p16;
char *p8;

nsize= MultiByteToWideChar(CP_ACP,0,(LPCSTR)buf,-1,NULL,NULL);

p16 = new WCHAR[nsize+1];

memset(p16,0,sizeof(nsize+1));

MultiByteToWideChar(CP_ACP,0,(LPCSTR)buf,-1,(LPWSTR)p16,nsize);
nsize=WideCharToMultiByte(CP_UTF8,0,(LPCWSTR)p16,-1,NULL,0,NULL,NULL);
p8=new char[nsize+1];
memset(p8,0,nsize+1);
WideCharToMultiByte(CP_UTF8,0,(LPCWSTR)p16,-1,(LPSTR)p8,nsize,NULL,NULL);
nsize=strlen((char*)p8);
fwrite(p8,nsize,1,fp);
delete [] p16;
delete [] p8;
}

451:デフォルトの名無しさん
12/04/14 01:16:44.89
sizeof(nsize+1)はただのnsize+1の間違い
もちろんこれでもだめ。

ゴミが出るときはあるファイルを読みこんで書き出すとゴミが発生する
でも発生しないときのファイルの末尾は、
ゴミが出るときのファイルと一緒で改行コードで終わらせてる

だから何が原因かマジでわからん

452:デフォルトの名無しさん
12/04/14 01:18:24.49
24時間経ってようやくコードのお出ましかよ
一緒に出しときゃあ24時間も丸々ムダにせずにすんだのに


453:デフォルトの名無しさん
12/04/14 05:31:48.13
> memset(p16,0,sizeof(nsize+1));
ここは
memset(p16,0,sizeof(WCHAR)*(nsize+1));
じゃないと全部ゼロクリアできないんじゃないの?

454:451
12/04/14 07:33:59.96
>>453
うん
その通りだ
でもそこ修正してもダメだった。
この関数を呼び出す前の、テンプレートファイルを読み込む部分のコードは、
fp=fopen(TEMPLATE1,"rb");
fseek(fp,0,SEEK_END);
fgetpos(fp,&size);
fseek(fp,0,SEEK_SET);
basic = new char[(int)size];
memset(basic,0,(int)size);
fread(basic,(int)size,1,fp);
fclose(fp);

こんな感じでバッファを確保して、
このバッファをWrite関数に渡してるんだがおかしくないよね?

455:451
12/04/14 07:41:26.13
ちなみにこのテンプレートファイルを読み込んで、
そのままUTF-8に変換せずに書き出してもゴミはなかった。
だからテンプレートファイルに最初からゴミが入ってるってことはないと思う。
よって、やっぱりさっきの変換関数のどこかがおかしいんだと思う

456:デフォルトの名無しさん
12/04/14 09:46:17.85
一般的にファイルには、終端文字が記録されていないので、
basic = new char[(int)size+1];
memset(basic,0,(int)size+1);
だな。

457:451
12/04/14 10:23:43.31
>>456
うおおおおおおおおおおおおおお!!
これだ!
やってみたらゴミ消えたよ!!
マジありがとう!!!
基本のファイル読み込みの時点で間違ってたとは情けない
ご迷惑をおかけしました


458:デフォルトの名無しさん
12/04/14 10:30:26.34
ベターCということで以後よろしゅうお願いします。

459:デフォルトの名無しさん
12/04/14 12:35:40.25
> 基本のファイル読み込みの時点で間違ってたとは情けない

ださっ


460:デフォルトの名無しさん
12/04/14 12:47:54.24
>>459
答えられなかったお前もレベル低いよ

461:デフォルトの名無しさん
12/04/14 12:51:31.43
>>456
basic = new char[size + 1];
basic[size] = 0;

462:デフォルトの名無しさん
12/04/14 14:10:45.36
>>456
細かいことだけどサイズがわかってるんだからmemset使うのは無駄な処理だね
末尾に'/0'を入れてやるだけでいい

463:デフォルトの名無しさん
12/04/14 20:19:23.89
細かいことだけどシングルクオートの中に2文字入れると効果は処理系定義だぞ
あんたどこの文化圏の人?

464:デフォルトの名無しさん
12/04/14 20:32:37.35
>>463
え・・・ 何・・・?

465:デフォルトの名無しさん
12/04/14 21:00:16.79
は?ヌル文字だろ?(威圧)

466:デフォルトの名無しさん
12/04/14 21:27:11.53
かみわりだとニャル子さん、さんかれあ、ふぁて

このあたりが再生数多いな

467:デフォルトの名無しさん
12/04/14 21:28:31.38
いきなりなんだ
とうとう狂ったか


468:デフォルトの名無しさん
12/04/14 22:02:40.50
ダウンロード違法化も決まったと言うのに

469:デフォルトの名無しさん
12/04/14 23:33:42.95
ふう

470:デフォルトの名無しさん
12/04/15 00:20:38.70
むにゃむにゃ
おやすみなさい

471:デフォルトの名無しさん
12/04/15 00:47:55.54
AB|C|D
AC|B|D
AD|B|C
A|BC|D
A|BD|C
A|B|CD
異なる4個を区別しない3箱に分けるにはスターリング数で上記のように6通りですがこれを列挙するアルゴリズムを考えてください。
出力は{{1100,0010,0001},{1010,0100,0001},{1001,0100,0010},{1000,0110,0001},{1000,0101,0010},{1000,0100,0011}}
のように2進数4ビット3つ組みで、箱に入れる物のビットが立つようになってると良いです。順番はどうでもいいです。
実際は個数・箱数は入力して可変にしたいです。
2箱ならビット演算余裕で思いついたんですけどね

472:デフォルトの名無しさん
12/04/15 01:36:04.47
思いついたの晒せよアホ

473:デフォルトの名無しさん
12/04/15 02:04:56.36
URLリンク(codepad.org)
こんなのでいいの?

474:デフォルトの名無しさん
12/04/15 02:30:24.01
いいよ

475: ◆st4kIyCS7.
12/04/15 11:12:18.20
URLリンク(codepad.org)
玉の数=箱の数+1で良ければ!

476: ◆st4kIyCS7.
12/04/15 12:04:04.60
箱の数+1=玉の数の場合、箱の数=m、玉の数=nとすると。
組み合わせの数は、n*(n-1)/2*1 例 4*3/2=6
箱の数+2=玉の数の場合、上にmを掛けた、m*n*(n-1)/2*1 例 3*4*3/2=3*6=18
箱の数+3=玉の数の場合、上にmを掛けた、m*m*n*(n-1)/2*1 例 3*3*4*3/2=3*3*6=54
箱の数+4=玉の数の場合、上にmを掛けた、m*m*m*n*(n-1)/2*1 例 3*3*3*4*3/2=3*3*3*6=162

477:デフォルトの名無しさん
12/04/15 13:15:13.51
できたけど codepad って使ったことないんだよな
ちょっと待って

478:デフォルトの名無しさん
12/04/15 13:28:09.34
int a[3][4] = {0}; ってできなかったっけ…
codepad でエラー取り切るのむずいもうちょっと待って


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch