[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 2chのread.cgiへ]
Update time : 08/03 08:01 / Filesize : 138 KB / Number-of Response : 658
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/30(金) 21:01:32.89 ]
C言語の入門者向け解説スレッドです。

★前スレ
C言語なら俺に聞け(入門編)Part 99
toro.2ch.net/test/read.cgi/tech/1331786500/
★過去スレ
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代目
toro.2ch.net/test/read.cgi/tech/1328276597/
★C++言語については避けてください。C++対応明記スレへどうぞ
★分からない事をなるべく詳しく書いて下さい。
★ソースコードを晒すと答えやすくなるかもしれません。
  # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること
  # サイズが大きい場合は宿題スレのアップローダ等を利用してください
★開発環境や動作環境も晒すと答えが早いかもしれません。
★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。

長くなりそうなコードはcodepadに貼り付けてもいいでしょう
codepad.org/

2 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/30(金) 22:14:04.75 ]
part 0x64 おめでとう!

3 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/30(金) 23:08:53.13 ]
>>1


4 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/30(金) 23:21:06.70 ]
>>1


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

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

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

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

8 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/31(土) 03:35:38.67 ]
sprintfの万能さには勝てない。

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

10 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/31(土) 04:37:22.90 ]
/dev/nullに書いて長さ調べるのはだめなの?



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

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

13 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/31(土) 05:07:43.04 ]
普及してる

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

15 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/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審議中@詳細は自治スレへ mailto:sage [2012/03/31(土) 16:08:20.20 ]
文字配列の初期化って0x00で初期化するのがいいの?
ヌル文字で初期化ってどうなのかなあ。
0x20で初期化するのってどう?

17 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/31(土) 16:16:43.78 ]
危険

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

19 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/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審議中@詳細は自治スレへ mailto:sage [2012/03/31(土) 22:53:54.41 ]
天地明察の原作者が一番かわいそうだわ



21 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/31(土) 22:54:09.06 ]
誤爆ごめんなさい

22 名前:営利利用に関するLR審議中@詳細は自治スレへ [2012/03/31(土) 23:02:22.15 ]
asprintf使えよ

23 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/31(土) 23:07:52.56 ]
assprintf?

24 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/31(土) 23:20:53.34 ]
処理系依存じゃん

25 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/31(土) 23:32:04.01 ]
うん

26 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/01(日) 01:58:27.03 ]
俺はC言語の達人
まいったか!?

27 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/01(日) 02:05:52.10 ]
まいりました


28 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/01(日) 08:38:49.75 ]
なにこの名前欄

29 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/01(日) 09:34:49.49 ]
これもすべてQZクズのせい

30 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/01(日) 10:32:31.72 ]
toro.2ch.net/test/read.cgi/tech/1333095907/46,48,50




31 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/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 mailto:sage [2012/04/01(日) 12:39:17.18 ]
パースの段階では構文木を構築するだけにして、実行とは段階を分けるのが普通。
小手先のトリックを使えばなんとかならんでもないけど…
例えば

cond: __STATE_IF expression __STATE_THEN
ifstatement: cond expression __STATE_ELSE expression

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


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


35 名前:31 mailto:sage [2012/04/01(日) 13:40:59.33 ]
>>32
ありがとうございます。とてもいいヒントになりました。

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

37 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/01(日) 18:49:06.32 ]
&HOGE[i].fuga

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

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


40 名前:36 mailto:sage [2012/04/01(日) 19:15:16.83 ]
やっぱ直接メンバ指定すると配列になっちゃうかー
dd



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

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

43 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/01(日) 23:24:31.09 ]
可愛いやつだ

44 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 14:08:04.29 ]
qune.cside.com/archives/001941.html

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

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


45 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 14:17:02.13 ]
ステマ乙www

46 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/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審議中@詳細は自治スレへ mailto:sage [2012/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審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 14:38:17.48 ]
>>46
C++ならいいけど、Cのconstは外部リンケージだから定数には使いにくいっていうか。
配列の要素数とか使えないところもあるし。

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

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



51 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 15:30:05.01 ]
>>50
const int TBL_SIZE = 10;

int tbl[TBL_SIZE]; ← エラー

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

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

54 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 16:03:23.39 ]
>>52
アホなん?
codepad.org/hAuu0X9H

55 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 16:04:00.48 ]
>>52
バカのくせに上から目線w

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

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

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

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

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



61 名前:営利利用に関するLR審議中@詳細は自治スレへ [2012/04/02(月) 16:17:13.73 ]
本 人 乙。

62 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 17:22:08.72 ]
enumハックなつかしいなぁ。

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

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

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

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

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

68 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 19:04:12.36 ]
>>67
なんか違ってないか?

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

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

70 名前:営利利用に関するLR審議中@詳細は自治スレへ [2012/04/02(月) 19:08:01.79 ]
ス レ 違 い



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

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

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

74 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 19:47:58.77 ]
constは糞でFA

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


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

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

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

79 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 20:18:51.51 ]
もうプログラムなんてしないなんて言わないよ絶対〜

80 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 20:26:02.51 ]
デスマ はじまるよ
ほら また 僕のそばで〜




81 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 20:29:00.45 ]
こういうのってマヌケがよく書くよな。

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

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


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

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


86 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 20:52:37.75 ]
>>84
C++スレでやれ

87 名前: ◆QZaw55cn4c mailto:sage [2012/04/02(月) 20:55:39.04 ]
>>84
それは const とともに & も必要じゃないかい?

88 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 21:06:38.15 ]
まだC言語スレでC++を語る馬鹿がいたのか

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

90 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 23:19:32.91 ]
C99でもダメじゃないのか?



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

92 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 23:28:24.90 ]
>>90
privatepaste.com/bfbce325f4

93 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 23:29:25.42 ]
>>91
そう、それのこと

94 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 23:29:40.12 ]
>>87
珍しくあってる。

95 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 23:31:26.78 ]
>>92
いや、>>54の話。

96 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 23:49:10.90 ]
ああ、ファイルスコープか

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

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

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

100 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/03(火) 14:43:57.68 ]
>>99
ncurses



101 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/03(火) 16:31:09.98 ]
ncursesだとnethackくらいが限界かと思う。

102 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/03(火) 17:11:32.51 ]
つくーるでつくれ。

103 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/03(火) 22:35:34.42 ]
うん

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

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


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

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

108 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/03(火) 23:29:21.26 ]
だいたい分かるだろw


109 名前:営利利用に関するLR審議中@詳細は自治スレへ [2012/04/04(水) 00:17:35.18 ]
天才の9割は左利き

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




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

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

113 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/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審議中@詳細は自治スレへ mailto:sage [2012/04/04(水) 18:54:18.96 ]
訂正です。
×そのように定義するのが適切でしょうか?
○どのように定義するのが適切でしょうか?

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

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

やめ☆とけ


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

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

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

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

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



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

122 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/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審議中@詳細は自治スレへ mailto:sage [2012/04/04(水) 22:18:14.92 ]
>>122

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

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

です。

124 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/04(水) 22:29:39.70 ]
化けてないでござる

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


126 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/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審議中@詳細は自治スレへ mailto:sage [2012/04/05(木) 00:03:37.86 ]
構造体を使えば済む話だろ、どうせ。

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

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

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



131 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/05(木) 01:11:18.41 ]
>>130
kwsk

132 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/05(木) 01:17:07.11 ]
>>131
ggrks

133 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/05(木) 01:17:39.17 ]
>>131
環境依存だ
mmap でもググってろ

134 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/05(木) 01:22:55.02 ]
さんきゅー ぐぐってみるゎ!

135 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/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審議中@詳細は自治スレへ mailto:sage [2012/04/05(木) 02:09:36.35 ]
最適化

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

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

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

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

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



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

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

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

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

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


144 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/05(木) 09:46:30.18 ]
hoge &= ~3

145 名前:143 mailto:sage [2012/04/05(木) 09:50:17.54 ]
>>144
ありがとうございます!!

146 名前:営利利用に関するLR審議中@詳細は自治スレへ [2012/04/05(木) 10:05:10.99 ]
みんなwchar_tって使ってる?

147 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/05(木) 11:15:56.63 ]
うん

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

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

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



151 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/05(木) 12:44:48.81 ]
>>150
もう一歩前へ

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

153 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/05(木) 13:05:36.75 ]
うん

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

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

156 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/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審議中@詳細は自治スレへ [2012/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審議中@詳細は自治スレへ mailto:sage [2012/04/05(木) 19:10:19.64 ]
hogeの下位2ビットをクリアしたい、と解釈しましたので、>>144のようなコードになりました。
どういう結果になって欲しかったんだろう・・・?

159 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/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審議中@詳細は自治スレへ mailto:sage [2012/04/06(金) 01:33:56.62 ]
mallocでメモリを確保したさい、callocと同様にゼロクリアするにはどうするのでしょうか?
forで回してnilやNULLを代入してみたのですがダメでした。



161 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/06(金) 01:36:51.77 ]
面白い回答

      ↓

162 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/06(金) 02:02:46.04 ]
0クリアしたいなら最初からcalloc使えよ

163 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/06(金) 02:07:12.67 ]
calloc = clear and allocate

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

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

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

167 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/06(金) 05:17:53.02 ]
NULなんて定義はないと思うが。

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

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

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

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



171 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/06(金) 06:19:05.88 ]
C言語スレだっつーのに。
アホか。

172 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/06(金) 06:47:23.02 ]
なら、objcってことで。

173 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/06(金) 07:13:23.08 ]
なんだこのバカ

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

175 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/06(金) 08:55:41.40 ]
www.kijineko.co.jp/tech/superstitions/initialization-by-memset.html
これでしょ

176 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/06(金) 09:20:52.47 ]
んなわけあるかボケ。

177 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/06(金) 11:27:46.92 ]
うん

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

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

180 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/06(金) 13:37:57.58 ]
うん



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

182 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/06(金) 15:18:12.09 ]
>>181
?

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

184 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/06(金) 16:04:31.14 ]
chmod +x ソースコード


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

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

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


188 名前:営利利用に関するLR審議中@詳細は自治スレへ [2012/04/06(金) 16:39:00.27 ]
はい、解決。

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

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



191 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/06(金) 17:26:33.50 ]
さぁ? できるかもしれないし、できないかもしれないし、できても動かないものかもしれないし

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

193 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/06(金) 22:28:19.89 ]
うん

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

195 名前: ◆QZaw55cn4c mailto:sage [2012/04/07(土) 10:02:14.95 ]
>>94
めずらしいのですか?

196 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/07(土) 13:54:37.48 ]
うん

197 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/07(土) 13:56:11.30 ]
めずらしくないよ

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


199 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/07(土) 21:45:18.34 ]
で?

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



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

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

203 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/09(月) 09:56:36.77 ]
Cだと1日1000行くらいしか書けないな。

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

205 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/09(月) 10:02:21.41 ]
それかけるっていうよりかくだよな

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

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


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

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

210 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/09(月) 10:51:37.24 ]
1000行もあれば大抵のことはできる。



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

212 名前:営利利用に関するLR審議中@詳細は自治スレへ [2012/04/09(月) 11:43:14.63 ]
1000!

213 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/09(月) 13:15:36.16 ]
>>211
書くよ。

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

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

216 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/09(月) 17:42:58.87 ]
1000行もあれば大抵のことはできる。

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

218 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/09(月) 19:37:38.47 ]
>>217
可能です

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


220 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/09(月) 20:10:46.71 ]
>>217
fussy.web.fc2.com/algo/algo2-2.htm
こんなん。ブレゼンハムの応用かな



221 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/09(月) 20:32:34.33 ]
>>217
>>220使ってみた。
codepad.org/x2ebuTXq

222 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/09(月) 20:35:02.33 ]
>>221
軸を傾けようぜ

223 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/09(月) 20:36:22.35 ]
>>222
それはお前への宿題な。

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

225 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/09(月) 20:41:14.91 ]
affine変換すればいいだけだろ。

226 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/09(月) 20:50:41.76 ]
>>224
宿題やっとけよ。

227 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/09(月) 21:00:18.31 ]
>>225
できるのならやってみろよ

228 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/09(月) 21:20:46.73 ]
ID強制になったら面白いだろうなぁ。

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

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



231 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/09(月) 22:31:56.27 ]
>>230
楕円描画アルゴリズムに?

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

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


234 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/09(月) 23:03:42.78 ]
はちみつが自信満々だから

235 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/09(月) 23:10:59.98 ]
ドヤ顔を見たいから

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


237 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/09(月) 23:43:29.07 ]
また変なのが湧いたな。

238 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/09(月) 23:46:26.82 ]
桜が満開だからじゃないかな。

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

240 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/09(月) 23:47:23.75 ]
桜の木の下に埋まっていればいいのに



241 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/09(月) 23:55:01.69 ]
C++11じゃなくて?

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

243 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 00:21:34.08 ]
>>242
そうなんだ。
今度調べてみるわ。

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

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


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

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

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

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

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

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



251 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 03:42:32.15 ]
>>248
たぶんただの老化だと思う

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

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

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

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

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


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

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

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

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

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

260 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 15:45:10.98 ]
スレ違いくそワロタ



261 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/04/10(火) 15:51:37.43 ]
>>259
一種類にいくつもの意味を持たせている C の方がムズい。

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

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

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


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

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

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


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

269 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 17:29:40.26 ]
->を使わなければ(ry

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



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

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

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

274 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 18:59:13.53 ]
だよね
Pythonのほうが読みやすいし

275 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/04/10(火) 19:46:18.52 ]
それは Gauche ユーザの俺への挑戦か

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

277 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 20:38:58.51 ]
>>272
断る!

278 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 21:14:36.14 ]
>>272
メソッドにしか?は使えねーぞ

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

280 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 22:40:30.69 ]
sscanf?



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

282 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 22:50:36.47 ]
gj!
>>280 >>281

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

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

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

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

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

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

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


289 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 03:17:36.70 ]
アホとは話にならんな、まったく。

290 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 04:02:46.75 ]
PHPスレからでてくんな



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

292 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 04:25:52.01 ]
なんだ、結局COBOLが最強だったのか

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

294 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 08:13:40.69 ]
もうアセンブラでいいよ。

295 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 16:24:18.64 ]
だね

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

297 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 16:35:48.68 ]
PHPerは何がしたかったんだろう…

298 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/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審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 17:04:17.84 ]
>>298
sprintf で文字列に変換する

300 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 17:20:24.63 ]
>>298
#include <stdio.h>
#include <stdlib.h>



301 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/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審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 17:38:04.76 ]
可変長引数を受け取る関数を自作してその中で。

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

304 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 18:20:30.15 ]
いえいえ

305 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 18:22:56.61 ]
OutputDebugStringというのもあるんだけどな

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

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

307 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 20:54:42.11 ]
韓国 「韓流が大ブームと言っているのは広告代理店だけ。心配になってきた」
engawa.2ch.net/test/read.cgi/poverty/1334137541/


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

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

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

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

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

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

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

・「日本は経済大国、中国は浮上する新星。私たちは、それらの間で様子をうかがっているだけにすぎない。決してうれしい状況ではありません」
news.searchina.ne.jp/disp.cgi?y=2012&d=0411&f=national_0411_020.shtml

308 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 21:27:43.30 ]
名無しがもとにもどった‥‥‥

309 名前:デフォルトの名無しさん mailto:sage [2012/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 mailto:sage [2012/04/12(木) 00:10:29.79 ]
>>309
> while (*dest++);
これが問題じゃね?
考えると *dest == '\0' であることがわかった後に ++ してるんだから、
この文が終わった時点で dest が指しているのはヌル終端の一個後ろだろ。
while (*dest) dest++;
に書き換えればいいと思うよ。
実際に動作させずに言ってるし酒飲んでるから間違ってたらごめんな。



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


312 名前:デフォルトの名無しさん mailto:sage [2012/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 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 00:16:37.91 ]
略した書き方しないで普通にif文やら配列やら使って分かりやすく書けよ。結局自分でも分からなくなってるジャン

314 名前: ◆QZaw55cn4c mailto:sage [2012/04/12(木) 00:20:44.79 ]
>>309
codepad.org/HM3Dtnpu

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

316 名前:デフォルトの名無しさん [2012/04/12(木) 00:33:20.57 ]
ま た チ ョ ン か。

317 名前:デフォルトの名無しさん [2012/04/12(木) 00:38:38.93 ]
脳なんたらの?www

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


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

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



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

322 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 01:14:46.98 ]
だったらソースを読めって。
strcatのソース読んだのか?

323 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 01:18:17.47 ]
アセンブラで書かれてました。

324 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 01:21:48.88 ]
珍しく基本を押さえたことしてるのが...

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

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

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

328 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 07:50:41.78 ]
>>321
toro.2ch.net/test/read.cgi/tech/1328276597/

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

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



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

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

333 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 12:01:32.60 ]
>>332
順序が逆だ。書けなければ読めない。

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

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

336 名前:デフォルトの名無しさん mailto:sage [2012/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 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 13:05:08.66 ]
>>334
たった1つしか知らないくせにモトローラのとかwww

338 名前:デフォルトの名無しさん mailto:sage [2012/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 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 13:38:31.94 ]
きたねぇ。

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



341 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 13:49:24.33 ]
いいんです。

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

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

343 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 14:16:38.55 ]
普通、pre-increment/post-decrementだな。

344 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 14:33:17.95 ]
>>318 K

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

346 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 14:37:07.89 ]
そんなもん書くやついねぇ。

347 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 16:21:55.20 ]
>>342
こいつ、何言ってんの?

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

349 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 16:44:43.59 ]
つくーる いじってろ。

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



351 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 16:48:22.21 ]
>>349
早く教えてくれよ

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

353 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 16:57:31.62 ]
春だなぁ。
学校にはちゃんと行けよ。

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

355 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/04/12(木) 17:09:37.73 ]
いいよ。

356 名前:片山博文MZボット ◆0lBZNi.Q7evd mailto:sage [2012/04/12(木) 17:09:58.89 ]
>>354 VC++ Express 2010は遅すぎ。2008の方がいい。
2008のDVDのISOイメージをダウンロードしてこれを使え:
www.slysoft.com/ja/virtual-clonedrive.html

357 名前:片山博文MZボット ◆0lBZNi.Q7evd mailto:sage [2012/04/12(木) 17:11:32.83 ]
で、どんなもん作りたいんだ?

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

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

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

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



361 名前:片山博文MZボット ◆0lBZNi.Q7evd mailto:sage [2012/04/12(木) 17:21:55.58 ]
ごめん、iOSじゃなくてMac OS Xだった

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

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

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

365 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 17:52:54.89 ]
携帯のアプリ作りたいならJavaだろ

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


367 名前:片山博文MZボット ◆0lBZNi.Q7evd mailto:sage [2012/04/12(木) 17:59:12.43 ]
WindowsでiPhoneアプリ開発は、ハードル高すぎ。iPhone持ってる?
blog.makotokw.com/2008/07/01/windowscygwiniphoneipod_touch/

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

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

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



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

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


373 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 18:13:06.16 ]
詐欺にひっかかった気分だ
ラノベよも

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

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

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

376 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 18:22:47.29 ]
一応もしもしのほうが金が取りやすいのは間違いない

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

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

379 名前:片山博文MZボット ◆0lBZNi.Q7evd mailto:sage [2012/04/12(木) 18:34:21.08 ]
www.atmarkit.co.jp/fsmart/articles/iphonesdk01/01.html

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



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

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

383 名前: ◆QZaw55cn4c mailto:sage [2012/04/12(木) 18:38:35.06 ]
>>343
逆じゃない?例:スタックポインタ

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

385 名前:330 mailto:sage [2012/04/12(木) 18:40:09.54 ]
>>342
ええと、なんかがんばってたんだな。

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

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

386 名前:片山博文MZボット ◆0lBZNi.Q7evd mailto:sage [2012/04/12(木) 18:40:19.55 ]
Mac OS X 10.5.3以降必須って書いてあるぞ。

387 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 18:49:36.22 ]
AndroidならLinuxでJavaでタダじゃないの

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

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

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



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

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

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

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

394 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 23:31:27.58 ]
>>393
マニュアル嫁

395 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 23:33:16.69 ]
>>393
余分に書き出している。

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

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


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

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

399 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/04/13(金) 00:20:07.91 ]
>>398
なんでやね〜ん。

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

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



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

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

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

404 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 01:39:31.83 ]
>>403
バカ発見

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

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

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

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

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

407 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 02:40:39.33 ]
いまどのレベルなの

408 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 02:49:04.32 ]
C実践プログラミング

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

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



411 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 14:29:08.14 ]
気がきかねーな
デバッグつったらVCしかねーだろ

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

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


414 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/04/13(金) 15:01:09.78 ]
>>411
なんでやね〜ん

415 名前:デフォルトの名無しさん mailto:sage [2012/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 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 15:12:57.09 ]
バーロー
ファイルに出力するときにもう解読不可能な文字になってるから、
文字コードを見たいんだよ

417 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 15:15:38.41 ]
バイナリエディタで開くかsprintfで16進に変換した跡で出力

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

419 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 16:24:16.48 ]
>>416
じゃぁ、メモリみても意味なくね?

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



421 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 16:51:27.43 ]
名乗るほうのデバッガじゃないと思うよ

422 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 16:53:52.86 ]
gdbなら全部見るオプションがあるね

423 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 17:15:03.00 ]
だから、スレ違いなんだから相手にすんなよ。

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

425 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 17:50:53.20 ]
バイナリエディタを忘れてた
ありがと

426 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 18:05:27.15 ]
>424
コンパイラのマニュアル
他人の書いたソース

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

428 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 18:14:03.87 ]
>424
PC9801プログラマーズバイブル


429 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 18:28:56.86 ]
C言語を256倍使う本


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



431 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 18:34:43.16 ]
>>424
Effective C++

432 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 18:35:24.54 ]
>>431
いい本だがC++じゃん。

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

434 名前:424 mailto:sage [2012/04/13(金) 19:50:51.20 ]
ふむ。サンクス
とりあえず本屋よってみる

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

436 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/04/13(金) 19:54:09.12 ]
>>435
再現可能なコードを提出すること。

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

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

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

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

440 名前:デフォルトの名無しさん mailto:sage [2012/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 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 21:16:45.78 ]

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

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

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

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


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

443 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 21:48:46.55 ]
>>440
こんな感じ?
codepad.org/uvJYomYM

444 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 22:00:27.03 ]
お漏らししてるw

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

446 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 22:33:33.53 ]
>>445
うん、それ

447 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 22:42:46.73 ]
>>439
Win32 の WideCharToMultiByte とか MutiByteToWhideChar 使ってるのか?

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

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

449 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 23:23:07.08 ]
>>448
文字を操作するのはほとんどそういうの

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

450 名前:デフォルトの名無しさん mailto:sage [2012/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 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 01:16:44.89 ]
sizeof(nsize+1)はただのnsize+1の間違い
もちろんこれでもだめ。

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

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

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


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

454 名前:451 mailto:sage [2012/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 mailto:sage [2012/04/14(土) 07:41:26.13 ]
ちなみにこのテンプレートファイルを読み込んで、
そのままUTF-8に変換せずに書き出してもゴミはなかった。
だからテンプレートファイルに最初からゴミが入ってるってことはないと思う。
よって、やっぱりさっきの変換関数のどこかがおかしいんだと思う

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

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


458 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 10:30:26.34 ]
ベターCということで以後よろしゅうお願いします。

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

ださっ


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



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

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

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

464 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 20:32:37.35 ]
>>463
え・・・ 何・・・?

465 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 21:00:16.79 ]
は?ヌル文字だろ?(威圧)

466 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 21:27:11.53 ]
かみわりだとニャル子さん、さんかれあ、ふぁて

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

467 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 21:28:31.38 ]
いきなりなんだ
とうとう狂ったか


468 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 22:02:40.50 ]
ダウンロード違法化も決まったと言うのに

469 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 23:33:42.95 ]
ふう

470 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 00:20:38.70 ]
むにゃむにゃ
おやすみなさい



471 名前:デフォルトの名無しさん mailto:sage [2012/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 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 01:36:04.47 ]
思いついたの晒せよアホ

473 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 02:04:56.36 ]
codepad.org/4AqJ2d5O
こんなのでいいの?

474 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 02:30:24.01 ]
いいよ

475 名前: ◆st4kIyCS7. mailto:sage [2012/04/15(日) 11:12:18.20 ]
codepad.org/pP8WEFFy
玉の数=箱の数+1で良ければ!

476 名前: ◆st4kIyCS7. mailto:sage [2012/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 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 13:15:13.51 ]
できたけど codepad って使ったことないんだよな
ちょっと待って

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

479 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 13:34:28.92 ]
codepad.org/jswzTyVE

これでいいのかな。コメントに日本語って使って大丈夫かな?
微妙に C++ 混ざってるけど勘弁して。max / min って C だとどこに入ってたっけ…

480 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/04/15(日) 13:44:12.45 ]
>>479
意外なことだが C には無い。 (少なくとも C99 には)

索引の当該ページ
uploader.sakura.ne.jp/src/up94166.png



481 名前:C言語初心者 [2012/04/15(日) 15:53:16.31 ]
文字列str中の文字c1を文字c2に置きかえる関数substを作成したのですが、
出力させるとnullとなり、文字列が出力されません。
どこに間違えがあるのでしょうか。
codepad.org/fYMt6DlJ

482 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 15:55:20.62 ]
>>481
subst の型と戻り値

483 名前:C言語初心者 [2012/04/15(日) 16:59:38.68 ]
substをchar型にすればよいのですか??
あと戻り値はどのようにすればうまくいきますか??

484 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 17:24:20.62 ]
char* subst(char *str, char c1, char c2){
char *p = str;
while(*p){
if(*p == c1){
*p = c2;
}
p++;
}

return *str;
}

485 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/04/15(日) 17:26:30.56 ]
>>484
まちがえてるぞ
return *str;
じゃなくて
return str;

486 名前: ◆QZaw55cn4c mailto:sage [2012/04/15(日) 17:27:56.02 ]
>>481
codepad.org/hPDYENXk

>>484
×return *str;
*str って何?

487 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 17:39:17.76 ]
>>485
見落とした

488 名前:デフォルトの名無しさん [2012/04/15(日) 17:42:37.05 ]
void でええやん無理しないで
(void* はやめれ)

489 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 17:54:45.64 ]
>>479
3の4乗通り全部試してるのか、結構無駄があるな
今日はこれをビット演算に改造して使わしてもらおう
もっと速いの考えた人待ってるよ
ちなみに実行は12玉・3箱くらいが主に

490 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 18:13:55.07 ]
3箱なら、一箱+(一箱+一箱)って考えれば再帰的に解けそうな気がするけどなー



491 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 18:15:39.81 ]
>>478
全部0で初期化される事が規格で保証されているよ
でも、警告出るコンパイラもあるのでmemsetした方が鬱陶しくないと思う

492 名前:デフォルトの名無しさん [2012/04/15(日) 18:33:31.00 ]
>>491
そのコンパイラを窓から投げ捨てるかオプションで黙らせるべき
memset なんか、それこそ保証ないんだから

493 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 18:45:39.85 ]
>>478 >>491
警告を出さないためにはこうじゃないかな。
int a[3][4] = {{0}};

>>492
投げ出す前に正しく書くべきじゃないかな。

494 名前:デフォルトの名無しさん [2012/04/15(日) 18:49:16.21 ]
>>493
「正しい」の定義を聞こうか

495 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 20:22:21.79 ]
>>493
ていうか、{}だけでいいだろ。

「最初の要素を0で、それ以降を0で初期化」
って冗長な表現だと思わないか?

496 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 20:23:05.20 ]
>>495
それも仕様から外れてる

497 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 20:35:52.45 ]
>>496
別にはずれてないだろ・・・

498 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 21:18:11.16 ]
>>497
C++とは違うのだよ


499 名前:479 mailto:sage [2012/04/15(日) 21:49:08.63 ]
>>489
いやそんなに試してないよ

確かに、途中で 「入れてないアイテム数 == 空の箱数」 になれば、後は順番に入れていく1通りが確定するから、
その処理を入れれば、試行じゃなくて純粋に列挙できる…と思う

500 名前:479 mailto:sage [2012/04/15(日) 21:51:12.76 ]
>>489
補足:
現に、1つめのアイテムは、1つめの箱にしか入れてない
また、2つめのアイテムは、1つめまたは2つめの箱にしか入れてない



501 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 23:27:52.21 ]
UTF-8の文字コードで書かれたファイるがあるんですが、
これをfgetsで読み込んだ場合ちゃんと一行ごとに読んでくれるんですか?

502 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 23:30:24.75 ]
うん。

503 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 23:31:03.07 ]
試しゃーいいじゃねーかよ
アホ

504 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 23:44:12.03 ]
strstrで比較するときはどうなんですか?
これも正しく比較されますか?

505 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 23:58:26.81 ]
試しゃーいいじゃねーかよ
アホ

506 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 23:59:07.11 ]
今PC壊れてるんでお願いします

507 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 00:00:02.19 ]
直しゃーいいじゃねーかよ
アホ

508 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 00:16:36.71 ]
clってexec-charset相当のオプションはないのかね?

509 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 00:18:23.18 ]
探しゃーいいじゃねーかよ
アホ

こうかな。

510 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 01:04:17.41 ]
まずはそのクソオプションそのまま試したのかよ
アホ



511 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 01:07:33.10 ]
そういえばバカバカ言うツンデレはたくさんいるけど
アホアホ言うツンデレって見たこと無いな・・・
大阪系のツンデレになるのかな

512 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 01:09:55.58 ]
>>511
初代いいんちょの名をほしいままにする東鳩のいいんちょを忘れるとは

513 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 18:21:24.30 ]
>>511
うん


514 名前:デフォルトの名無しさん [2012/04/16(月) 18:23:11.91 ]
アセンプリでpushって命令あるけど、あれどういう意味?
moveは移動ってわかるんだけど、pushも似たようなんじゃないのですか?
調べてもスタックがどうたらよくわからない。

515 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 18:26:42.00 ]
>>514
なにもかも分かってない

516 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 18:27:13.17 ]
牧草を筒の中に入れて固めていた頃があったんだよ
で、固めることをpushって入ってたんだよねー
アメリカの伝統的牧畜の影響

517 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 18:28:01.48 ]
配列だと文字をstrcpyできないですかね?

char a[3]
a[0]='s';
a[1]='t';
a[2]='u';

char b[2];
b[0]='r';
b[2]='d';

この場合、strcpy(a,b);はエラーですか?


518 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 18:29:48.84 ]
pushはメモリに数値を書き込むって意味じゃなかったっけ?
それ以外考えられんのだが。

push abc 3

abc番地に3を書き込む。
違うっけ?

519 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 18:29:50.36 ]
>>517
運がよければ動く
確実にするには文字列の終端が必要

520 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 18:31:53.75 ]
新卒入社の研修かな



521 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 18:33:39.56 ]
>>519

char *s;
char *t;

s="good";
t="bad"

strcpy(s,t);だとOK?

配列型文字列はstrcpyダメで、ポインタ型文字列はstrcpyOK?

522 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 18:34:03.04 ]
内容も間違ってるし、書き込むスレも間違ってる

523 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 18:36:01.18 ]
>>521
さらにNG度UP!

524 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 18:36:31.96 ]
utf-8の文字コードで書かれたファイルを読んだ場合、strstrで比較してもちゃんとひっかかりますか?

525 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 18:43:13.25 ]
うん。

526 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 18:45:12.26 ]
>>521
アウト

>>524
探すものがasciiのみであるならば。

527 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 18:49:15.59 ]
ワロタwwstrcpy使えないじゃんww

>>521もダメで、>>517もダメなら何が正しいんだよ。

文字列はポインタか配列でしか表現できんだろうに

528 名前:デフォルトの名無しさん [2012/04/16(月) 18:50:28.97 ]
間違えたwww

strcpyじゃなくて

strcmpです。

よろしくお願いします。

529 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 19:07:04.22 ]
>>526
> 探すものがasciiのみであるならば。
ascii範囲外でも問題ないよ

530 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 19:08:49.27 ]
>>526
>>529

ありがとうございます。
ascii範囲外でも問題ないってどういう仕組みなんでしょうか?
勝手に文字コード判断して比較してくれてるんですか?



531 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 19:17:24.72 ]
単にバイナリで比較してるだけ。

532 名前:デフォルトの名無しさん [2012/04/16(月) 19:19:45.77 ]
別に文字コード判断する必要ないだろ

533 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 19:26:28.79 ]
やっぱそういうことか
おk
サンキュ

534 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 19:54:34.48 ]
>>528
天才

535 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 19:56:21.89 ]
>>527=>>517
>>517はまず文字列じゃないのでアウト。
>>521はリテラルに対する書き換えなのでアウト。

536 名前:526 mailto:sage [2012/04/16(月) 19:59:15.10 ]
>>530
双方がちゃんとutf-8なら問題ないです。ごめんなさい。

537 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 21:51:41.50 ]
#include <stdio.h>

int main() {
int i;
double a;

a=0;
for(i=0; i<10; i++) {
a = a + 0.1;
if(a == 0.3)
break;
}
printf("a =%6.3f\n", a);
return 0;
}

このプログラムでa=1.000ってなっちゃうんだけどなんでだろ
a=0.3じゃないの?

538 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 21:56:12.59 ]
a == 0.3が成立しないから。
なぜ成立ししないかは、浮動小数点数 誤差あたりでぐぐってしらべれ

539 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 22:22:49.88 ]
>>537
初めてCを習ったとき、それ注意されたわ
懐かしい。

540 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 22:32:44.34 ]
if ( a >= 0.3 )
break;

にでもしとけ




541 名前:デフォルトの名無しさん [2012/04/16(月) 22:55:01.33 ]
書式指定フォーマットの%Xで32ビット分しか表示されないのは仕様ですか?
※VS2010

542 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 22:58:56.93 ]
仕様です
もっとまともなC99対応コンパイラ使って下さい

543 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 22:59:28.56 ]
マニュアル読めば書いてあるだろうが

544 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 23:03:51.89 ]
色つきの文字って配列に入れたりできないのかな?
好きなときに保存した色を簡単にだしたいんだけどどうすればいいんだろう

545 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 23:06:11.14 ]
>>544
タグ付けとパーサ作ればおk

546 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 23:37:41.80 ]
パーサってなんだろ
色々調べてみたけどちんぷんかんぷんだから今は諦めます
ありがとう

547 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 23:51:30.35 ]
色つきの文字を表現する構造体を作って配列にすれば?
文字列としても使いたいなら、文字列と色情報配列を持つ構造体にするとか。

548 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 01:14:18.11 ]
cursesお勧め

549 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 01:33:07.38 ]
printf( "\033[2J" ); /* これまでの画面を消去します。*/
printf( "\033[043m ABC\t" ); /* 背景色黄色で ABC と表示し、タブを表示します。*/
printf( "\033[034m DEG\t" ); /* 青色で DEF と表示し、タブを表示します。*/
printf( "\033[031m GHI\n\n" ); /* 赤色で GHI と表示し、2回改行します。*/

550 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 19:12:19.74 ]
動的に確保したい構造体配列(hoge)のメンバに動的に確保したい構造体配列(sub)を持ったもの
を考えており、main関数で宣言自体をして確保、解放自体は別の関数でするようなものを作ってみたのですが
どうもしっくり来ないんですがもっといい方法はあるのでしょうか。

codepad.org/D6VOZ2X6



551 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 19:17:12.94 ]
>>550 の方法がいいと思うよ

552 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 19:42:18.40 ]
>>550
関数名をalloc_hogeとfree_hogeとかに変えたらいいんじゃないだろうか

553 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 19:50:17.03 ]
どのあたりがしっくりこないんだろ。
確保と解放が完全な対になってないあたり?

554 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/04/17(火) 20:14:05.67 ]
>>550
C はそういうものじゃね?
C++ ならもうちょっと「しっくりくる」ように書けそうに思うけど。

555 名前:550 mailto:sage [2012/04/17(火) 20:20:47.88 ]
とりあえずセグメント違反を繰り返しながらここにたどり着いたのでしっくりこない点は

free関数の引数が*hogでいいが確保では**hogにしないといけないのか
確保関数でアドレスの先頭を表すのにhog[0]を使わないといけないのか

です。

556 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/04/17(火) 20:30:51.83 ]
>>555
一般的な感覚だと
struct hoge* initial_main(void)
{
struct hoge* hog = malloc(sizeof(struct hoge));
hog->A = malloc(sizeof(struct sub)*(2));
hog->B = malloc(sizeof(struct sub)*(4));
hog->C = malloc(sizeof(struct sub)*(8));
hog->C[5].a = 100;
return hog;
}

と定義しといて、
呼出す側は

hog=initial_main();

じゃないかなぁ。

557 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 20:31:15.83 ]
>>555
こんな感じとか。
名前は、initial_mainじゃなくて create_hogeとかalloc_hogeにしたほうがいいと思うけど

struct hoge* initial_main()
{
struct hoge* hog;
hog = malloc(sizeof(struct hoge));
if(hog){
hog->A = hog->B = hog->C = 0;
hog->A = malloc(sizeof(struct sub)*(2));
hog->B = malloc(sizeof(struct sub)*(4));
hog->C = malloc(sizeof(struct sub)*(8));
if(hog->C){
hog->C[5].a = 100;
}
}
return hog;
}

558 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/04/17(火) 20:34:55.46 ]
>>557
確かに initial って名前だと確保とは別っていう印象を受けるね。
C++ から用語を取って construct でもいいかも。

559 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 20:37:32.06 ]
基本どおりに 〜〜alloc と 〜〜free でいいだろ

560 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 20:43:32.00 ]
>>556,557
ありがとうございます。名前はわかりやすくしときます。

struct hoge* initial_main(void){ }
ような使い方を知りませんでした。
こっちのほうがぱっと見わかりやすいです。



561 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 21:05:40.25 ]
>>560
mallocとかと変わらんよ。

562 名前:デフォルトの名無しさん [2012/04/17(火) 21:50:02.50 ]
「malloc_なんたら」を C++ では作りやすくしてくれてるだけ
construct はやだな、extern "C" したときのうんこ臭が耐えがたい

563 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 21:52:09.11 ]
なんでC++?

564 名前:デフォルトの名無しさん [2012/04/17(火) 22:12:25.72 ]
あ、隔離する気ならノープロブレム

565 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 22:50:14.48 ]
>>557
> create_hogeとかalloc_hogeにしたほうがいいと思うけど
create,alloc,init(ialize),newなどは好みだけど
hoge_createやhoge_allocのほうがいいと思うな。

566 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 22:52:23.06 ]
create_hoge = hogeを作れ
hoge_create = hogeが作る

567 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/04/17(火) 22:59:51.50 ]
合成語として考えるなら hogecreate でもおかしな順序ではないよ。
伝統的には create_hoge の方が主流に思えるのは確かだけど…。

568 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 23:01:43.59 ]
めんどくせぇからnewつかえるのに移れよ

569 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 23:04:43.68 ]
namespace 的な考え方すりゃ接頭辞を共通にしたほうが分かりやすい

570 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/04/17(火) 23:06:34.62 ]
>>565
俺の好みでは確保したメモリの構造を見せる場合には alloc と free で
ハンドルとして扱ってもらう場合には create と close って使い分けな感じ。



571 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 23:06:39.12 ]
うん

572 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 23:08:09.28 ]
>>567
gtk_init
Py_Initialize
lua_open
SDL_Init

573 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/04/17(火) 23:10:48.08 ]
>>572
そのあたりは API としての性格をもったものだから区別が必要じゃないかなぁ。

574 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 23:14:23.02 ]
allocateとinitializeをallocate関数でやるのはどうかと思うの。

575 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 23:27:45.93 ]
>>573
じゃぁ
組み込みではなく生成したインターフェースが
NAME_newな形になるCSTLはどう?

create_hoge
より
hoge_create
のほうが扱いやすいと思うよ
補完しやすいし。

576 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 23:32:59.54 ]
C++じゃ
 オブジェクト.メソッド
なんだが、お前らオブジェクト指向言語使わんの?

577 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 23:37:05.61 ]
どーせ ファクトリ.create_hoge vs ファクトリ.hoge_create になるよ

578 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 23:37:50.58 ]
>>576
ンなの聞いてねーよks
スレタイすらも読めないのかよ池沼
ヒャッペン音読して出直せバカ

579 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/04/17(火) 23:41:04.09 ]
>>575
マクロを使って生成しているとは言え、それも CSTL というライブラリが提供している API っていう気もする。
ただ、いずれにせよ上述の「主流に思える」というのはそうでもないかな、という気がしてきた。

580 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/04/17(火) 23:58:47.15 ]
>>575
補完しやすいというのは疑問があるぞ。 構造体とそれに対する操作の組を名前にするわけだろ。
だとすると hoge_ まで入力したときの候補は create_ まで入力した候補より分量が多くなる。
補完候補は少ない方が良いと考えると create_hoge の方が補完しやすいと言えないか?



581 名前:デフォルトの名無しさん [2012/04/18(水) 00:19:00.97 ]
個人的にgimpソースハックしたときに、関数名の冗長さには苦労させられたわ
GtkWidget *scale;
scale = gimp_prop_spin_scale_new (config, "brush-size", _("Size"), 0.01, 1.0, 2);
gimp_spin_scale_set_scale_limits (GIMP_SPIN_SCALE (scale), 1.0, 1000.0);
gimp_spin_scale_set_log_mode (GIMP_SPIN_SCALE (scale), TRUE);

終始こんな調子の長い名前で変数や関数が羅列されてる。
処理的には大して高度なことしてないのに、パッチ当てるべき箇所を探すだけでも、妙に疲れる。

経験的実感として、全体が長い名前ばかりなコードは、明らかによみずらい。妙な疲労感を伴う気がするわ。

関数は gmp_set_scale() や gmp_new_scale() 程度の10文字程度の長さが最も読みやすいと経験的に感じる。これ以上長いと短期記憶を余計に消費して疲れるし、これ以上短いと意味が不明で疲れる。

582 名前:デフォルトの名無しさん mailto:sage [2012/04/18(水) 01:10:33.43 ]
そしてその命名ルールを守ってもGIMPほどのモノは作れないという不思議w


583 名前:デフォルトの名無しさん mailto:sage [2012/04/18(水) 01:32:30.77 ]
>>579
単なるモジュールプレフィクスだよ。
関数名が被らんようにと言うのが主目的で、操作対象を表すわけじゃない。
せいぜいどのモジュールに属する関数かという程度。

モジュール外部と結合する意味でAPI的と言えるだろうけど、
CSTLが提供している云々は関係ないな。
外部結合だから出力の命名規則がそうなってるだけだ。

なんで、意味合いが違うのは同意なんだけど、Cの世界じゃ
モジュールに分けたらプレフィクス付ける方が主流だと思うよ。

584 名前:デフォルトの名無しさん mailto:sage [2012/04/18(水) 02:07:17.52 ]
>>580
ない。

585 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/04/18(水) 13:09:12.05 ]
>>583
俺は API 的というのを広い範囲で、外に公開する名前くらいの意味で言ってた。
言葉の使い方を除けばだいたい認識は一致していると思う。

586 名前:デフォルトの名無しさん mailto:sage [2012/04/18(水) 20:03:47.61 ]
>>582
gimpって規模は異常に巨大だけど、徹底的にコードを単純な書式にして、モジュール化も徹底してるおかげで
局所単位でいぢれるし、局所単位で見ればそれほど超高度なことをしてる箇所は少ないので、意外と改造できるのでハック初心者の練習におすすめ。

とにかくコード書式が、これでもかというほど単純なように徹底されてる。
関数中で使う変数の宣言は、必ず関数の先頭位置で行うようになってるし、
GtkWidget *scale;
scale = gimp_prop_spin_scale_new ();

GtkWidget *scale = gimp_prop_spin_scale_new ();
と書くことすらしない。徹底的に一行の情報量を減らすというアプローチで書かれてる。
一見すると過剰な程にコードが簡易化されてるが、そのおかげで、所見でもある程度読める。ただし全体の行数は膨大。

587 名前: ◆QZaw55cn4c mailto:sage [2012/04/18(水) 21:38:55.50 ]
>>586
>GtkWidget *scale;
>scale = gimp_prop_spin_scale_new ();
>を
>GtkWidget *scale = gimp_prop_spin_scale_new ();
>と書くことすらしない。

auto変数の初期化すら嫌いな -pedantic な人たちなのでしょう、多分。

588 名前:デフォルトの名無しさん mailto:sage [2012/04/18(水) 21:46:14.13 ]
GTK自体の仕様がよくわからん…

589 名前:デフォルトの名無しさん mailto:sage [2012/04/18(水) 21:49:24.30 ]
っていうか
関数スコープの途中で変数宣言できるようになったのってC++が出てきてからじゃね?

1行の情報量を減らすってのはなるほどなぁとは思う。


590 名前:デフォルトの名無しさん [2012/04/18(水) 22:12:00.57 ]
関数スコープとか・・・またまた香ばしいw



591 名前:デフォルトの名無しさん mailto:sage [2012/04/18(水) 22:13:38.56 ]
ブロックの先頭以外、でいいのにね

592 名前:デフォルトの名無しさん mailto:sage [2012/04/18(水) 22:24:29.30 ]
関数スコープは荒れる


593 名前:デフォルトの名無しさん mailto:sage [2012/04/18(水) 22:36:08.96 ]
うん

594 名前:デフォルトの名無しさん mailto:sage [2012/04/18(水) 23:32:26.55 ]
関数スコープの宿命だな

595 名前:デフォルトの名無しさん mailto:sage [2012/04/18(水) 23:33:08.58 ]
関数スコープの宿命はよ


596 名前:デフォルトの名無しさん [2012/04/19(木) 00:02:06.72 ]
言うなら PG の、C 使いの宿命を言ってみな

597 名前:デフォルトの名無しさん [2012/04/19(木) 00:45:13.12 ]
お前が関数ポインタの宿命を言ったらな。

598 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 00:51:23.99 ]
C++のソースがCのソースに変換されたのを見て、ショックを受けた、口

599 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 00:54:48.71 ]
C++のtry-catch構文って、Cのソースに変換すると、どんな記述になりますか?

600 名前:589 mailto:sage [2012/04/19(木) 00:57:41.83 ]
catch, finallyブロックのアドレスを順番にスタックに積んでいって
割り込みハンドラーが呼ばれたら順番にそれを呼べば良いんじゃね?



601 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 00:58:47.42 ]
無理じゃね

602 名前: ◆QZaw55cn4c mailto:sage [2012/04/19(木) 01:02:45.86 ]
>>599
www.nurs.or.jp/~sug/soft/super/longjmp.htm

603 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 01:04:11.92 ]
関数ポインタならできるんじゃね?


604 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 01:04:55.24 ]
>>600 >>602 情報どうもです、結構複雑になるんですね

605 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 01:30:15.28 ]
前処理におけるエラーについての質問です。

#if (TESTDEF == 1)
aaa();
#else
bbb();
#endif

上の例では TESTDEF が 1 だったら、aaa() を実行して、
そうでない値のときには bbb() を実行してくれることを期待して記述し、そのように動作します。

しかし TESTDEF が未定義の場合にも bbb(); が実行されてしまいました。
てっきり未定義エラーのようなものが発生すると思ったので驚きました。

上記のようなことをする場合に、
TESTDEF が未定義である場合にコンパイルエラーとする方法はありませんでしょうか?


606 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 01:33:19.91 ]
#if (ISSET_TESTDEF == 1)
ccc();
#else
ddd();
#endif

なるプリプロセッサを延々と書き連ねる


607 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 01:35:44.19 ]
>>605
#errorを使う。
codepad.org/YkpizD6p

608 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 02:15:29.40 ]
>>606-607
やはり前処理1行だけで判断させてエラーにするのは難しそうですね。
>>607のコードのやりかたで自分でエラー行を書く方法で考えてみます。

ありがとうございました。


609 名前:デフォルトの名無しさん [2012/04/19(木) 02:38:18.42 ]
ふざけた野郎だな。

610 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 03:05:07.76 ]
>>606がだよな。いみわからんし



611 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 03:28:31.23 ]
#ifdef TESTDEF
#if (TESTDEF == 1)
aaa();
#else
bbb();
#endif
#endif

612 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 04:13:03.33 ]
プリプロセッサには elif 構文あるんだけどな

613 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 04:44:52.45 ]
この時どうするかいい方法が思い浮かばんかった。

#include <stdio.h>

#define TESTDEF

void aaa(void)
{
fprintf(stdout, "aaa\n");
}

void bbb(void)
{
fprintf(stdout, "bbb\n");
}

int main(void)
{
#ifndef TESTDEF
#error "not defined TESTDEF."
#elif TESTDEF == 1
aaa();
#else
bbb();
#endif
return 0;
}


614 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 04:59:40.34 ]
mfcなんですが、何故か?値が代入されません

for ( i=0; i<opetbl.recv_len; i++ ){
recv_dt.data[i] = (unsigned char)opetbl.recv_data[i];


と言う文が有ったのですが・・・
同じ様に・・・

for ( i=0; i<opetbl.recv_len; i++ ){
recv_dt.data[i] = (unsigned char)opetbl.recv_data[i];

dainyuu_data[i] = (unsigned char)opetbl.recv_data[i];



615 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 05:00:01.66 ]
と、入れてみました。上の方は値がちゃんと代入されるのですが
同じ事をやっている下は代入されません・・・

変数の宣言は、グローバル変数で宣言しました

int dainyuu_data[RECV_LENG];

一方、値が代入される変数は、
union を使い、やっています。

union U_recv_dt {
unsigned char data[RECV_LENG];
};

メモリの設定とか、必要なのでしょうか?

616 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 05:15:43.14 ]
>一方、値が代入される変数は、
recv_dt のこと?

dainyuu_data は int の配列
recv_dt は unsigned char の配列

代入されているかの検証で
元データを文字列と期待し printf にて先頭アドレスを渡したとすると、異なる出力になるのは当然だと思うが
配列の index 総なめで、個々に出力してみたの? (printf("%d\n", daynyuu_data[i] ってこと)

617 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 05:50:29.80 ]
fprintf(stderr, "dainyuu_data = %p\n", dainyuu_data);
で代入時、参照時にdainyuu_dataのaddress確認してみたら?
異なると思うよ。

618 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 06:06:59.39 ]
>>616
>>617
有り難うございます。

>dainyuu_data は int の配列
recv_dt は unsigned char の配列

unsigned char の配列でも試してみましたが、駄目でした。

>総なめで、個々に出力してみたの? (printf("%d\n", daynyuu_data[i] ってこと)

デバグモードのブレークポイントで配列の中を確認しました。
入っていない様です、また画面に表示も出ません(値は0です)

返信有り難う御座います・・・ 
疲れたので寝ます・・・

619 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 07:04:42.88 ]
おやすみ、ムーニーマン

620 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 10:10:58.61 ]
下の代入文は本当にfor文の中に入ってるの?



621 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 10:45:52.19 ]
デバッガ使ってて分からんぐらいだから、他のスレッドにリセットされたことも考慮しないとだめかもね

622 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 10:59:41.13 ]
うむ

623 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 11:13:08.28 ]
グローバル以外にもdainyuu_dataという名前の配列があるとか。

624 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 19:20:12.59 ]
そうだよ

625 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 22:17:47.25 ]
次の方どぞ

626 名前:デフォルトの名無しさん [2012/04/19(木) 23:03:21.29 ]
宿命はよ

627 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 17:55:05.45 ]
C++の基本〜標準を学校で学びましたが
C言語を独学で勉強できますか?

628 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 19:03:38.06 ]

                       できます。具体的には以下の通りです。

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

629 名前:デフォルトの名無しさん [2012/04/20(金) 21:55:24.56 ]
-神の誕生
+土方の誕生

630 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 22:39:06.55 ]
ゲーム作るには最低どのくらいの知識が必要なのよ



631 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 22:44:57.75 ]
歩く前に歩くことをやめる人間には無理

632 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 22:45:39.31 ]
何の知識だよ

633 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 22:49:01.61 ]
最低でも四元数
あとはUI関連の古典 誰のためのデザイン でも読んどけ

プログラム知識だけで面白可笑しく作れるとか思ったら
そいつはアホ


634 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 22:51:05.14 ]
誰がゲームを面白おかしく作れるための知識がほしいって書いてんの?

635 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 22:53:06.67 ]
面白くもおかしくもない一流のクソゲーでも作りたいのかwww
いやそういう知識なら俺は知らんよw


636 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 22:58:50.78 ]
ゲーム作るのには四元数は必須だよな。俺もそう思う。
どんなゲームでも絶対使うもん。マインスイーパとか。

637 名前:デフォルトの名無しさん [2012/04/20(金) 22:59:23.41 ]
>>630
それはおまえさん自身が決めることだ

少しでもマシンの動かし方を憶えたら
こんなことできないか? とアイディアから始めるんだ

必要な知識はそれによって決まる

ゲームプログラマってのはコンピュータのプロではなく
遊びのプロであることを片時たりとも忘れてはならない

638 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 23:06:59.79 ]
そんなもんディレクターとかデザイナーの話だろ
プログラマとは別

639 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 23:08:07.03 ]
質問者はスレチともどうとも取れない感じだったのに、回答者が全力でスレチってどういうことなん。
しかも超偉そう。

640 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 23:10:55.97 ]
ゲームプログラマは、無能な企画の脳内にあるイメージを口頭でのわずかな情報で再現する能力が必要



641 名前:デフォルトの名無しさん [2012/04/20(金) 23:18:05.79 ]
ディレクタやデザイナになりたければ
そこそこの組織に入るにはどうするかが問題となる

で、面接でくだんの質問をしたらまず祈られるだろう

スレチとか言っている連中はそこがわかってない
内容的に1人で勝負できる人がスポンサーをつのる様相がわかってない

642 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 23:23:36.78 ]
ああごめん。たしかに俺わかってなかった。
スレチじゃなくて板違いだったね…

643 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 23:30:38.38 ]
(白黒4階調の初代ゲームボーイで)フルカラー出してくれ。

と企画から言われた時は、ハードウェアのマニュアルをそいつに投げ付けた事は良い思い出。

644 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 23:40:30.49 ]
インベーダーの仕様や白黒TV用カラーガラスでも投げ返されると面白いんだがな

645 名前:デフォルトの名無しさん [2012/04/20(金) 23:41:01.13 ]
色のにじみでハードの定義にない色を出していたのも良い思い出
通信路の定義の違いまで何とかできてしまったのは無知のおかげで今の俺なら発狂してた
そこそこの組織にいる人ならハード担当と癒着でない仲の良さを大事にする

646 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 23:43:00.93 ]
>>645
その時代の話、結構興味あるので、酉とかつけてもらえますか?

647 名前:デフォルトの名無しさん [2012/04/20(金) 23:44:55.59 ]
さんずいがねえなあ

648 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 23:50:13.31 ]
じゃあ酒あげるんで、レスの1行目に
〜おじさんの楽しい昔話〜
ってつけるようにしてもらえませんか

649 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 23:51:23.08 ]
〜おじさんの楽しい昔話〜(板違いじゃないよ!)
でもいいです。あと、もしおばさんだったらごめんなさい。その場合はおばさんと表記を改めていただけるようお願いします。

650 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 23:52:54.49 ]
ゲ板にでもスレ立てたら?



651 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 23:55:05.77 ]
ほんとだよな。

652 名前:デフォルトの名無しさん [2012/04/20(金) 23:58:48.56 ]
そりゃごっつぁん、でマダー?tntn
1行目がどうのって意味わかんねえし
セクハラ野郎は嫌いだぜ

653 名前:デフォルトの名無しさん mailto:sage [2012/04/21(土) 00:03:29.27 ]
レスを抽出してまとめて読めるからだよ

654 名前:デフォルトの名無しさん mailto:sage [2012/04/21(土) 00:04:05.35 ]
興味ない人はNG設定できる副作用もあるよ。

655 名前:デフォルトの名無しさん mailto:sage [2012/04/21(土) 02:09:25.93 ]
>>628
ありがとうございます

656 名前:デフォルトの名無しさん mailto:sage [2012/04/21(土) 02:09:28.86 ]
MPIってモッピーと読むと言われたが冗談ですよね?

657 名前:デフォルトの名無しさん mailto:sage [2012/04/21(土) 02:15:53.72 ]
>>655
それコピペ






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<138KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef