- 1 名前:デフォルトの名無しさん mailto:sage [2012/12/09(日) 23:18:13.67 ]
- C言語の入門者向け解説スレッドです。
★前スレ C言語なら俺に聞け(入門編)Part 110 toro.2ch.net/test/read.cgi/tech/1353148538/ ★過去スレ 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++の宿題片付けます 161代目 toro.2ch.net/test/read.cgi/tech/1354070278/ ★C++言語については避けてください。C++対応明記スレへどうぞ。 ★分からない事をなるべく詳しく書いて下さい。 ★ソースコードを晒すと答えやすくなるかもしれません。 # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること。 # サイズが大きい場合はアップローダ等を利用してください。 codepad.org/ ideone.com/ ★開発環境や動作環境も晒すと答えが早いかもしれません。 ★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。
- 552 名前:デフォルトの名無しさん mailto:sage [2012/12/31(月) 19:56:41.71 ]
- バカなので肥溜めに自ら入り込んでしまいます
- 553 名前:デフォルトの名無しさん mailto:sage [2012/12/31(月) 20:03:45.18 ]
- バカなのでQzと同じ土俵に立っていることがまるで理解できていません
- 554 名前: ◆QZaw55cn4c mailto:sage [2012/12/31(月) 20:06:13.63 ]
- >>550
ごめんね 気づけのお薬あげる、よく利くよ つupload.wikimedia.org/wikipedia/commons/c/c2/Thorazine_advert.jpg
- 555 名前:デフォルトの名無しさん mailto:sage [2012/12/31(月) 20:31:52.72 ]
- Qzじゃ無いとしても、コードコードと騒ぐ炎上学習法を真似て実践するクズだから、
こんな簡単な事も気づけないんだろうな。惨めすぎる。 白白はとっとと反省文書くように。その他のQzを含む気付けないバカ共は遺書を書け。
- 556 名前:デフォルトの名無しさん mailto:sage [2012/12/31(月) 20:36:49.86 ]
- 自称霊感が強い、なので他の人には見えないものが見えてしまいます
- 557 名前:デフォルトの名無しさん [2012/12/31(月) 20:52:24.83 ]
- >>482だけじゃバカにはわからないらしいからもう少しヒントをやろう。
これがおかしいコードだと気づけないバカは年越さずに死ね。 > Tree tree = malloc(sizeof(struct Tree)); > Tree_add(tree, 3); > Tree_add(tree, 1);
- 558 名前:デフォルトの名無しさん mailto:sage [2012/12/31(月) 20:56:34.63 ]
- 何でこんなに荒れるんやろねぇ
まぁ何にしろ書き込んでるのはひとりやろけどね
- 559 名前:デフォルトの名無しさん mailto:sage [2012/12/31(月) 21:04:45.51 ]
- バカが分をわきまえればいい。
- 560 名前:デフォルトの名無しさん mailto:sage [2012/12/31(月) 21:05:55.30 ]
- >>488あたりから自演がひどい
- 561 名前:デフォルトの名無しさん mailto:sage [2012/12/31(月) 21:13:35.26 ]
- オレ(>>492)は>>488じゃないわけだが。自演に見えるのはバカの証拠。
でも、教えてもらったらきっと死にたくなるよ。えれー基本的な事だから。 こんなバカどものウンココードで世の中は動いてるんだろうと想像すると こっちが死にたくなってくるけどな。
- 562 名前:デフォルトの名無しさん mailto:sage [2012/12/31(月) 21:15:34.52 ]
- >>557
- 563 名前:デフォルトの名無しさん mailto:sage [2012/12/31(月) 21:15:42.04 ]
- > こんな××どもの×××コードで某巨大掲示板は動いてるんだろうと想像すると
> こっちが死にたくなってくるけどな。
- 564 名前:デフォルトの名無しさん mailto:sage [2012/12/31(月) 21:16:58.26 ]
- >>561
とっとと思いを遂げろ 自意識過剰のバカ
- 565 名前:デフォルトの名無しさん mailto:sage [2012/12/31(月) 21:18:33.99 ]
- >>561
くだらないやり取りを、自演という表現に換えただけですよ。
- 566 名前:デフォルトの名無しさん mailto:sage [2012/12/31(月) 21:21:04.32 ]
- >>557で気付かないバカは分をわきまえた方が生きやすいぞ。
- 567 名前:デフォルトの名無しさん mailto:sage [2012/12/31(月) 21:22:36.54 ]
- 入門編スレで息巻く先輩、マジパネーっす
- 568 名前:デフォルトの名無しさん mailto:sage [2012/12/31(月) 21:29:06.64 ]
- 入門者が質問するスレであって、バカが答えるスレじゃ無いわけだ。
- 569 名前:デフォルトの名無しさん mailto:sage [2012/12/31(月) 21:36:00.25 ]
- 答えないやつがなに偉そうに言ってんの?って感じ
- 570 名前:デフォルトの名無しさん mailto:sage [2012/12/31(月) 21:37:47.54 ]
- ×答えない
○答えられない
- 571 名前:デフォルトの名無しさん mailto:sage [2012/12/31(月) 21:45:15.59 ]
- 自称回答者のバカには教えてやらない。
- 572 名前:桃白白 mailto:sage [2012/12/31(月) 21:50:35.76 ]
- >>528
typedef struct Hoge *Hogeの流派はないんじゃね。すくなくとも桃白白は 同じことをする人を知らない。マジでかーやめたほうがいいのか。 C++だとtypedefでどんな名前にしちゃうの?
- 573 名前:デフォルトの名無しさん mailto:sage [2012/12/31(月) 21:51:43.85 ]
- マジカッケーっすww
ところでわりんすけどタバコ買ってきてもらえません?
- 574 名前:デフォルトの名無しさん [2012/12/31(月) 22:06:11.68 ]
- int **matrix;
matrix = (int **)calloc(gyo,sizeof(int)); if (matrix==NULL){ exit(1); } for (i=0; i<gyo; i++) { matrix[i] = (int *)calloc(retu,sizeof(int)); if (matrix[i]==NULL) { exit(1); }} すみません、これなんですが、 callocで配列は確保できているみたいなのですが ところどころ(5こおきに等)0になりません 間違いをおしえてくださいmm
- 575 名前:デフォルトの名無しさん mailto:sage [2012/12/31(月) 22:12:57.28 ]
- >>574
もしかして sizeof(int) != sizeof(int*)
- 576 名前:デフォルトの名無しさん mailto:sage [2012/12/31(月) 22:15:33.35 ]
- >>572
構造体とそれへのポインタを同じ名前にするとかキチガイ沙汰。 とっとと>>557で指摘されてるのなおして反省文書くように。 バカ共が必死で答えを待ってるぞ。
- 577 名前:デフォルトの名無しさん mailto:sage [2012/12/31(月) 22:23:42.95 ]
- キチがキチと呼ぶ
- 578 名前:デフォルトの名無しさん mailto:sage [2012/12/31(月) 22:27:22.17 ]
- >>576
変数じゃねえだろ型にtypedefしてるだけだ
- 579 名前:デフォルトの名無しさん [2012/12/31(月) 22:33:58.00 ]
- >>575
すみません(int*)って何をあらわしてるんですか?? とりあえずsizeof(int) == sizeof(int*)でした
- 580 名前:デフォルトの名無しさん mailto:sage [2012/12/31(月) 22:44:27.57 ]
- >>578
更にわかってないバカが参入
- 581 名前:デフォルトの名無しさん mailto:sage [2012/12/31(月) 23:03:05.22 ]
- キャストもわからないんじゃ、入門書を3冊ぐらい読んでから
またくるんだね。
- 582 名前:デフォルトの名無しさん mailto:sage [2012/12/31(月) 23:07:45.20 ]
- >>580
Cの規格書読み直せバカ あ、読んでねえからそんな発言がでんだな
- 583 名前:574 [2012/12/31(月) 23:44:20.84 ]
- >>581
sizeof(int *) 今までわからずにつかってましたが、というかつかってないが 後ろの部分ってキャストだったんですね (int **)calloc の(int **)もよくわかりません、**ってのが特にわかりません どうかおしえてください
- 584 名前:デフォルトの名無しさん mailto:sage [2012/12/31(月) 23:46:15.74 ]
- sizeof はキャストじゃないっぺ。
- 585 名前:デフォルトの名無しさん [2012/12/31(月) 23:55:19.30 ]
- >>582
お前がバカって事は良くわかってるから、そんなに必死でアピールしなくてもいい。 もうすぐ年越すけどやっぱりわからないんだろ。さすがバカ。wwww
- 586 名前:デフォルトの名無しさん mailto:sage [2012/12/31(月) 23:55:46.00 ]
- >>574
再現する最小構成のソースを貼ってくださいと何度言わせれば おそらくmatrixへのアクセスミスだろうとエスパーしてみた 5個おきではないので違うっぽいけど codepad.org/Phyx7G5V >>583 int**は読んでそのまま、intへのポインタへのポインタ。でっていう。 ポインタはCで挫折しやすい所だから、まずはしっかり勉強した方がいい。 ここで一から聞くのではなく、図などで分かりやすく説明してるサイトで勉強して、 そのうえで分からない所をここで聞け。 キャストなども同じ。基礎を勉強しないでノリでサンプル動かしてる感じかい?
- 587 名前:574 [2012/12/31(月) 23:59:06.50 ]
- >>584
ですよねー sizeof(int *) は(int *)のサイズ求めてるだけですよねー; もしかして581って違う人にいってたとしたらはずいな;
- 588 名前:574 [2013/01/01(火) 00:04:44.35 ]
- >>586
ありがとうございます、すいません はろうとしたのですが、なんか忍者修行中で、リンクはれませんでした;; ですね。勉強します。 苦しんで覚えるC言語入門(サイト) は一通りしました。 やり方ググッてとりつけてるかんじです。
- 589 名前:574 [2013/01/01(火) 00:08:23.66 ]
- codepad.org/kyDz6Khv
- 590 名前:574 [2013/01/01(火) 00:09:35.95 ]
- すみません、OTZはれましたOTZ
- 591 名前:デフォルトの名無しさん mailto:sage [2013/01/01(火) 00:10:48.30 ]
- 最新のヴァkはh抜かすのもできねーのかよ
- 592 名前: ◆QZaw55cn4c mailto:sage [2013/01/01(火) 00:12:39.43 ]
- >>572
やりたいことは理解したつもりです。結論からいうと、>>484 のまずいところは以下の2点 1) malloc() して得た領域が 0 クリアされていることを仮定している。 > Tree tree = malloc(sizeof(struct Tree)); の直後に > Tree_add(tree, 3); をおいてしまっている。たぶん、c++/java のコンストラクタにあたるものを C にするときに書き落としてしまっているかと。 2) malloc() の帰り値はチェックしたほうがいいんじゃないかな? >typedef struct Hoge *Hoge 名前空間が違うからねえ可能といえば可能だけれども。もう C++/java 的な考え方に染まっておられるんですね。 確かに非再帰に書けばスタックオーバーフローの恐怖からは逃れられるけれども、この問題の場合も私ならば再帰的に書いてしまう。 ideone.com/fya8EI 木構造は再帰的ゆえに木構造を扱うアルゴリズムも再帰的に書いて楽をしたくなってしまいます。 スタックオーバーフローは別の手段で回避しようかと、リンク時にスタックサイズを指定したり、ああ、最近 AVL 木を添削してもらったのでぼちぼち使い始めています。 あけおめ!
- 593 名前: ◆QZaw55cn4c mailto:sage [2013/01/01(火) 00:25:38.57 ]
- >>539
なるほどねえ、現に私ことQZも早々とアロケータはデバッグのための自前物にしちゃってるからねえ、オープンソースものに参加するのもいいかもしれませんね。
- 594 名前:574 [2013/01/01(火) 00:30:39.17 ]
- 591
最近のバカはその後httまで抜かすも戻るを押し書き込んだ模様です
- 595 名前:デフォルトの名無しさん mailto:sage [2013/01/01(火) 00:40:29.53 ]
- h抜かす必要ないのに
- 596 名前:桃白白 mailto:sage [2013/01/01(火) 00:45:04.73 ]
- >>592
rootにNULLを入れるのが抜けてるってことね。 mallocのNULLチェックは質問の本旨と関係ないから省いた。 AVL木の添削したのはじつは桃白白だったりしちゃうんだけど、削除の方はできた?
- 597 名前:デフォルトの名無しさん mailto:sage [2013/01/01(火) 00:53:33.69 ]
- >>596
その節はありがとうございます。:-) 今のところはうまくいっているようですが、まだ自分で再構成できるまでには至っていない、削除ルーチンはまだだし、当分は無理かなあ、まだ怖くて怖くて。
- 598 名前:桃白白 mailto:sage [2013/01/01(火) 01:14:25.79 ]
- >>597
二分探索木の削除はわかる? AVL木の削除はそれに平衡処理を追加するだけだ。
- 599 名前: ◆QZaw55cn4c mailto:sage [2013/01/01(火) 01:27:29.70 ]
- >>598
二分木の削除はOKですが、木回転が一回で終わらないのが今のところの難所になっています。ああ、これは本のサンプルを見たほうがはやいかもしれませんね。
- 600 名前:桃白白 mailto:sage [2013/01/01(火) 02:58:17.72 ]
- >>599
削除時に回転が必要になるのは左右の木の高さの差が2になったとき。 左右の木の高さの差が2になるのは木の高さが1減ったとき。 木の高さが1減るのは木のバランスがイーブンになったとき。 木のバランスがイーブンになるのは 左に傾いている木の左のノードを削除したとき。 右に傾いている木の右のノードを削除したとき。 木の回転が行われたとき。 木のバランスがイーブンでなかったら木の高さは変わってないわけだから 平衡がとれてるってことでその上のノードでは回転は必要なくなる。 削除時の回転は、回転後にバランスがイーブンになるものと、 回転後にバランスがイーブンにならないものとがある。 分類するとこうなる。 i.imgur.com/8xf54.png ノードのバランスをチェックすることで左への回転か右への回転かを わけることができる。子のバランスをチェックすることで一重回転か 二重回転かをわけることができる。一重回転のときは子のバランスを チェックすることで回転後のバランスをわけることができる。 二重回転のときは孫のバランスをチェックすることで回転後のバランスを わけることができる。 削除時はパターンが2個増えて、平衡したという判断の仕方が変わるだけ。難しくないっしょ。
- 601 名前:デフォルトの名無しさん mailto:sage [2013/01/01(火) 03:15:10.87 ]
- >>572
C++の場合、 struct Hoge { int a; }; 自体が typedef struct Hoge { int a; } Hoge; 相当になる。というかclassとstructがほとんど違いがない。(メンバ変数のデフォルトのアクセス制限の違いだけだったはず)
- 602 名前:桃白白 mailto:sage [2013/01/01(火) 03:33:55.52 ]
- >>601
なるほどー、桃白白もそう書くことにしようかな。
- 603 名前:デフォルトの名無しさん mailto:sage [2013/01/01(火) 08:29:15.39 ]
- > rootにNULLを入れるのが抜けてるってことね。
年を越したらようやく正解が出てたか。 白白は反省文書くように。Stackも同様。 こんな簡単な事を恥ずかしくないコード出せとか必死で煽ってたバカは死にたくなっただろう。 もう死んだ? >>549とか >>549とか >>549とか >>549とか まぐれで動くこともあるから、普通にレビューの経験積んでればこの程度の事は一瞥で わかるようになってるもんだ。 3年以上PGやっててわからなかった奴は才能無いからホームレスに転職しろ。
- 604 名前: ◆QZaw55cn4c mailto:sage [2013/01/01(火) 08:48:08.33 ]
- >>603
たしかにこの種のバグはデータ構造を扱うようになると一度は出会う、QZのような馬鹿だと何度も首をかしげることになりますね。 そこで、>>592 に一端を示してもいる「QZアロケータ」では malloc()したあとにランダム値を書き込んで返すという cmalloc() と真逆のことをして早期発見に努めています、本質的な対策にはなっていませんけど。 もっとも最近はめっきりと出会うことはなくなりました。 でも本当は c++ にさっさと移行してコンストラクタをきっちり書くことでしょうね。 >>603 ご指摘感謝アマチュアには身に余る配慮でした。 自然対数の底の展開もなんかやらかしてるのかな? >>600 子ノードを左右とも持つノードの削除で思考/試行格闘中です。
- 605 名前:デフォルトの名無しさん mailto:sage [2013/01/01(火) 11:20:31.42 ]
- >>603
結局おまえば出せずじまいじゃん ちょろっと晒してドヤ顔してればいいものを よほど自信がなかったんだろうなwwバーーカ
- 606 名前: ◆QZaw55cn4c mailto:sage [2013/01/01(火) 11:46:20.30 ]
- >>605
may be >>477
- 607 名前:デフォルトの名無しさん [2013/01/01(火) 12:46:41.66 ]
- >>605
こんな簡単なのでドヤ顔で指摘しろとか、本当にバカって惨め。 >>515でヒントのヒント、そのあとでヒント>>557を出してるのにバカには わからなかったんだな。吐き気がするほどのバカ、破滅的に頭が悪い。 んじゃ、お年玉代わりにバカ向けにドヤ顔で解説してやる。感謝しろよ。バカ。 >>515の「おせっかいな通りすがり」とは彼ら(>>503-505) ------------------------------------- >>503 > 動的二次元配列を0で初期化したいのですがfor > でまわす以外に方法ってなにかあるのでしょうか?? >>504 > calloc >>505 > >>503 > memset ------------------------------------- 続いて>>557の解説 mallocの後の領域初期化は要注意ポイント。 それをいきなりTree_addに渡している。Tree_addの引用が一行だけなら Tree_addで初期化する可能性も否定できないが、2行引用すればバグであること が明らかにになる。 > Tree tree = malloc(sizeof(struct Tree)); > Tree_add(tree, 3); > Tree_add(tree, 1);
- 608 名前:デフォルトの名無しさん mailto:sage [2013/01/01(火) 12:58:18.38 ]
- ふーん
- 609 名前:デフォルトの名無しさん mailto:sage [2013/01/01(火) 14:03:48.62 ]
- >>607
解説っつーか、バカだの死ねだの発言が問題なわけですがそれは理解できてるんですか?
- 610 名前:デフォルトの名無しさん mailto:sage [2013/01/01(火) 14:26:29.35 ]
- バカにバカといって何が悪い。
- 611 名前:デフォルトの名無しさん mailto:sage [2013/01/01(火) 14:26:49.59 ]
- うん
- 612 名前:デフォルトの名無しさん mailto:sage [2013/01/01(火) 14:32:48.84 ]
- なんでこう回りくどい人なんだろ
- 613 名前:デフォルトの名無しさん [2013/01/01(火) 14:56:58.50 ]
- バカって言われたくなければ、自分の順位を正しくはかる事だ。
- 614 名前:デフォルトの名無しさん mailto:sage [2013/01/01(火) 15:01:27.84 ]
- 正月くらい美しく過ごしなさいな
- 615 名前:デフォルトの名無しさん mailto:sage [2013/01/01(火) 15:16:38.98 ]
- >>613
普段どんな惨めな生活を送ってるんですか? よほどでなければこうまでねじ曲がらないと思うんですけど?
- 616 名前:デフォルトの名無しさん [2013/01/01(火) 15:48:41.85 ]
- バカと言われたのがそんなに悔しいなら、最初から出しゃばらなきゃ良かったんだよ。
お前のようなバカは、自分のバカさを認識して分をわきまえた方が生きやすいと思うぞ。
- 617 名前:デフォルトの名無しさん mailto:sage [2013/01/01(火) 16:04:11.22 ]
- マァその小さすぎる梅干し程度の脳味噌じゃ自前で認識できないようだから
有難くも私がお前はバカだアホだマヌケだと懇切丁寧に教えてやっているんだがな カネとってもいいくらいだ
- 618 名前:デフォルトの名無しさん mailto:sage [2013/01/01(火) 16:17:58.12 ]
- こんな底辺スレで何をそんなに大きく出ちゃってるんだこのバカは
実生活でのストレスやらはこんなところくらいでしか発散させられないほどのバカなんだろうな
- 619 名前:デフォルトの名無しさん mailto:sage [2013/01/01(火) 16:26:43.13 ]
- >>618
底辺PGなんてそんなものだ 察してやろうぜ
- 620 名前:デフォルトの名無しさん mailto:sage [2013/01/01(火) 16:26:55.50 ]
- >>618
>>615
- 621 名前:デフォルトの名無しさん mailto:sage [2013/01/01(火) 16:27:09.76 ]
- 争いは、同じレベルの者同士でしか発生しない
- 622 名前:デフォルトの名無しさん mailto:sage [2013/01/01(火) 16:47:42.38 ]
- まあこれで少しは懲りたでしょうな
- 623 名前:デフォルトの名無しさん [2013/01/01(火) 16:50:05.51 ]
- 「バカだの死ねだの発言が問題」とかいいながらバカを連発して回りくどいバカだな。
- 624 名前:デフォルトの名無しさん mailto:sage [2013/01/01(火) 16:50:51.95 ]
- すいません。
ビットマップ画像に、アルファベット、ひらがな、カタカナ、数字、記号を入れて、 指定した文字を画面に描画する処理を作っているんですが、 if分の分岐が100を超えてしまうと、VCがコンパイルエラー表示してしまいます。 if分の分岐を使わずに、指定した文字の座標をセットするにはどうしたらいいでしょうか
- 625 名前:デフォルトの名無しさん mailto:sage [2013/01/01(火) 16:52:01.88 ]
- >>623
バカ認定してる相手にバカって言われてそんなに悔しいの?www だったら最初からかみついてくるんじゃねーよバーーーカww
- 626 名前:デフォルトの名無しさん mailto:sage [2013/01/01(火) 16:53:21.45 ]
- その分岐の一部を貼ってみなよ。
- 627 名前:デフォルトの名無しさん mailto:sage [2013/01/01(火) 16:53:52.77 ]
- >>624
後学のためその力作のソースを是非とも見てみたいから ideoneとかにうpしてくれると 新年から討論の種が増えてわたくしはうれしいので 是非ともうpしてちょーだい
- 628 名前:デフォルトの名無しさん mailto:sage [2013/01/01(火) 17:00:55.69 ]
- if分岐使わないって、関数ポインタの配列によるテーブル化のこと指してるのかな?
- 629 名前:デフォルトの名無しさん [2013/01/01(火) 17:01:17.32 ]
- >>625
そんなに頭が悪くて生きているのつらくないか? バカだからそれすらないのか。 自然はうまくできてるな。
- 630 名前:デフォルトの名無しさん mailto:sage [2013/01/01(火) 17:01:49.89 ]
- いや、普通にこういうのが並んでるだけだけど。
if (strcmp(c_jp, "あ") == 0){ pos->src.x = CHAR_SIZE*0; pos->src.y = CHAR_SIZE*0; } else if(strcmp(c_jp, "い") == 0){ pos->src.x = CHAR_SIZE*1; pos->src.y = CHAR_SIZE*0; } else if(strcmp(c_jp, ":") == 0){ pos->src.x = CHAR_SIZE*20; pos->src.y = CHAR_SIZE*2; } else if(strcmp(c_jp, " ") == 0){ pos->src.x = CHAR_SIZE*21; pos->src.y = CHAR_SIZE*2; } else if(strcmp(c_jp, "「") == 0){ pos->src.x = CHAR_SIZE*22; pos->src.y = CHAR_SIZE*2; } if (c == 'a'){ pos->src.x = CHAR_SIZE*10; pos->src.y = 0; } else if(c == 'b'){ pos->src.x = CHAR_SIZE*11; pos->src.y = 0; } else if(c == 'c'){ pos->src.x = CHAR_SIZE*12; pos->src.y = 0; } else if(c == 'd'){ pos->src.x = CHAR_SIZE*13; pos->src.y = 0; }
- 631 名前:デフォルトの名無しさん mailto:sage [2013/01/01(火) 17:05:10.14 ]
- なんつーかこう、isascii()とか文字コード判定処理を使おうという
知能は働かないのかね。
- 632 名前:デフォルトの名無しさん mailto:sage [2013/01/01(火) 17:05:10.48 ]
- #define NCHARTYPE 128
typedef void (*funcp)(); void str_a(); int main(){ funcp str_tbl[NCHARTYPE]; str_tbl['a']=str_a(); } こんな感じのコードを書きたいけど、書けない学部生なら昔見た
- 633 名前:デフォルトの名無しさん mailto:sage [2013/01/01(火) 17:05:29.22 ]
- >>629
>>629
- 634 名前:デフォルトの名無しさん mailto:sage [2013/01/01(火) 17:09:28.56 ]
- data = array[あ];
ってやるとdataに"あ"のX座標とY座標が入るみたいなイメージ。 STLのマップとかでできないですかね
- 635 名前:デフォルトの名無しさん mailto:sage [2013/01/01(火) 17:10:22.19 ]
- stlのmapでやれよ
cでやるならhash関数ぐらい自分で書け
- 636 名前:デフォルトの名無しさん mailto:sage [2013/01/01(火) 17:12:14.00 ]
- stlのマップのキー値ってchar* の文字列でもいいんでしたっけ
- 637 名前:デフォルトの名無しさん mailto:sage [2013/01/01(火) 17:12:54.45 ]
- C言語にSTLは無いのでできません
- 638 名前:デフォルトの名無しさん mailto:sage [2013/01/01(火) 17:15:50.85 ]
- >>637
cstlってライブラリならあります。glibとか基本的なデータ構造は用意されてます >>634 それって、構造体ポインタの配列(hash)じゃないの?
- 639 名前:デフォルトの名無しさん mailto:sage [2013/01/01(火) 17:16:27.63 ]
- >>630
普通は "あ" -> 0, "い" -> 1 'a' -> 10, 'b' -> 11 を計算で求める。でも、計算式を考えるのが嫌だったら。 ↓こういう関数作れば解決。 int z(const char *c_jp) { if(strcmp(c_jp, "あ") == 0){ return 0;} if(strcmp(c_jp, "い") == 0){ return 1;} } int e(char c) { if(c == 'a'){ return 10;} if(c == 'b'){ return 11;} }
- 640 名前:デフォルトの名無しさん mailto:sage [2013/01/01(火) 17:19:55.54 ]
- 計算結果求めるのに結局if文がいっぱい並ぶじゃないすか
- 641 名前:デフォルトの名無しさん mailto:sage [2013/01/01(火) 17:21:15.01 ]
- elseでつないでいるから複雑すぎると言ってコンパイラが降参する。
if () return v; これの連続だけなら楽勝で通る。
- 642 名前:デフォルトの名無しさん mailto:sage [2013/01/01(火) 17:23:47.63 ]
- もっとかっこいいやつがいいです
- 643 名前:デフォルトの名無しさん mailto:sage [2013/01/01(火) 17:24:23.86 ]
- { pos->src.x = CHAR_SIZE*11; pos->src.y = 0;}
この部分、関数かマクロで纏めろよ
- 644 名前:デフォルトの名無しさん mailto:sage [2013/01/01(火) 17:27:46.87 ]
- >>642
if () return v; をうまく配置して格好いい絵でも書けよ。
- 645 名前:デフォルトの名無しさん mailto:sage [2013/01/01(火) 17:30:49.14 ]
- >>630
21世紀型プログラミングの真髄を垣間見た これこそが今の時代に求められるC言語の使い方だ わたくしはこれ以上この美しいソースを書きかえることなんてできない
- 646 名前:デフォルトの名無しさん mailto:sage [2013/01/01(火) 17:31:05.49 ]
- >>633
おまえさー、スゲー簡単な答えかもしれないって事を考えずにコードコードと煽ってたのか? スゲー簡単な答えが出てきたら(実際出てきちゃったんだが)どうするつもりだったんだ? バカの思考回路は良くわからないな。
- 647 名前:デフォルトの名無しさん mailto:sage [2013/01/01(火) 17:34:58.94 ]
- >>646
そうじゃなくて、煽ることばかりのお前の態度を指摘していたんだよ(最初から それが読み取れないのはバカだから?日本人じゃないから?
- 648 名前:デフォルトの名無しさん mailto:sage [2013/01/01(火) 17:35:11.24 ]
- int hash(const char *cp){
if () return z(); if () return e(); return -1; } #define INSERT(a,b,c) Foo hash_tbl[]={ INSERT(hash("あ")), INSERT(hash("い")), ... } アイディアだけ書く
- 649 名前:デフォルトの名無しさん mailto:sage [2013/01/01(火) 17:36:33.78 ]
- C++スレへ行ってSTLの使い方聞くだけでいい
- 650 名前:デフォルトの名無しさん mailto:sage [2013/01/01(火) 17:37:56.14 ]
- >>649
このぐらいならSTLなんてイラナイだろ
- 651 名前:デフォルトの名無しさん [2013/01/01(火) 17:39:47.57 ]
- >>647
それに対抗するために煽り返していたのか。バカの後付けの言い訳は見苦しすぎる。 足りない頭で必死に考えて、そんな回答ないと確信して煽ってたんだろうな。 バカすぎwww
- 652 名前:デフォルトの名無しさん mailto:sage [2013/01/01(火) 17:40:23.36 ]
- この半角のおっさんここにもいるのかwwww
うかうかしてらんねーな
|

|