1 名前:デフォルトの名無しさん [2009/10/29(木) 21:10:18 BE:227211146-DIA(352353)] C言語の*入門者*向け解説スレッドです。 初心者、初級者の方は他の質問スレのほうが良いかもしれません。 教えて欲しいのではなく宿題を丸投げしたいだけなら ↓宿題スレ↓へ行ってください。 C/C++の宿題片付けます 131代目 pc12.2ch.net/test/read.cgi/tech/1255709298/ ・C++言語はスレ違いです。 ・分からない事をなるべく詳しく書いて下さい。 ・ソースコードを晒すと答えやすくなるかもしれません。 # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること # サイズが大きい場合は宿題スレのアップローダ等を利用してください ・開発環境や動作環境も晒すと答えが早いかもしれません。 ・質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。 前スレ C言語なら俺に聞け(入門篇) Part 54 pc12.2ch.net/test/read.cgi/tech/1254829314/ 過去スレ 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
562 名前:デフォルトの名無しさん [2009/11/09(月) 15:25:01 ] >>558 そーだよな 「名前のルックアップ」でいちいち10万エントリをサーチせずに済むようにローカル化するよな プログラム全体で何万エントリあろうが1時点でのルックアップ範囲は狭く済むようにね # ルックアップは何もコンパイラだけじゃなく PG 自身もやるわけで >>559 いや、ここで論じている問題は struct{ double a[3]; int b[3]; }; #define B 0 #define W 1 #define H 2 #define born 0 #define age 1 #define virgine 2 という配列の用法の是非だる?
563 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 15:28:01 ] >>562 オレは #define より enum を使うぜ
564 名前:デフォルトの名無しさん [2009/11/09(月) 16:23:57 ] >>563 列挙子の数が配列のサイズを超えたかどうか、どうやって調べる?
565 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 16:37:39 ] 列挙子の最後にMAXなんちゃらってのを追加して sizeof(配列)と比較する
566 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 18:03:52 ] 配列の利点はメモリ上に連続して取られることだろ つまり、配列は連続領域を(静的に)確保及び参照するときに使う複合データ型 規格書に書いてあることでも書いたら100点もらえるんじゃないの ISO/IEC 9899:1999 (E) 6.2.5 Types 20 ― An array type describes a contiguously allocated nonempty set of objects with a particular member object type, called the element type.36) Array types are characterized by their element type and by the number of elements in the array. An array type is said to be derived from its element type, and if its element type is T , the array type is sometimes called ‘‘array of T ’’. The construction of an array type from an element type is called ‘‘array type derivation’’. C99でごめんねごめんね
567 名前:デフォルトの名無しさん [2009/11/09(月) 18:36:16 ] >>565 >>566 列挙子を増やすとサイズが自動的に増加する配列があったらなあ・・・ って要求にほぼ答えられる機能があるわけだが、それでも配列でと頑張ると 別に B へのポインタに +1 で W にアクセスなんかできなくていいけど、 レジスタ割付くらい可能なところでは当然やって欲しいなあ・・・ って要求は諦めることになるよな
568 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 18:38:25 ] int *p; DisplayInside_of_TheVariables = p; DisplayInside_of_TheVariables = *p; これは何がどう違うのですか。
569 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 18:42:09 ] 36)オブジェクト型は不完全型を含まないので,不完全型の配列は作ることが出来ない。
570 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 18:44:19 ] >>568 上はint*型の代入で下はint型の代入
571 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 22:51:58 ] >>567 こんなんでどや? gcc でならコンパイルできるぞ #include <stdio.h> enum{HOGE0, HOGE1, HOGE2, HOGE_MAX}; int main(void){ int i, a[HOGE_MAX]; for(i=0;i<HOGE_MAX;i++) a[i]=i; printf("%d\n", a[HOGE_MAX-1]); return 0; }
572 名前:デフォルトの名無しさん [2009/11/09(月) 23:10:56 ] >>571 その HOGE_MAX ってのを自動というかどうかだが、 その例で HOGE_MAX としている列挙子がいかなる識別子とも干渉しないことを担保する 普遍的な方法論はあるのか?
573 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 23:56:07 ] >>572 そんなのある訳無いじゃん 強いて言うなら命名規則で頑張る
574 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 00:04:53 ] ゲーツェーツェー
575 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 00:09:31 ] X Windows Systemに代表されるようにプレフィックスをつけて長い関数名になるんですね、わかります そんな僕は、JPEGやCore Foundationの書き方をリスペクトしている
576 名前:デフォルトの名無しさん [2009/11/10(火) 00:27:40 ] 自分の揚げ足を取ることになるが「いかなる識別子」というからにはマクロ名まで含んでしまうな #define a b int a, b; //oops! ・・・て、そういう意図じゃなくwww enum hage {HOGE0, HOGE1, HOGE2}; int a[sizeof(enum hage)]; で自動的に int a[3]; になるような方法ね 仮に HOGE3 を追加する場合、HOGE3 自身と HOGE0, HOGE1, HOGE2 との間に どんな関係を保証させればよいのか、さらに保証させなくてよい(保証させてはいけない)のか、 によって色んな構文・機能を使い分けるわけだよな そこで配列という選択に至る、なるべく仮定の少ない例を聞いているわけだ
577 名前:デフォルトの名無しさん [2009/11/10(火) 00:41:32 ] あきらめたらどう
578 名前:デフォルトの名無しさん [2009/11/10(火) 00:43:01 ] 何を?
579 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 00:50:36 ] >576 sizeof(enum hage)ってなんだよ
580 名前:デフォルトの名無しさん [2009/11/10(火) 01:01:44 ] いやまあ 4 にしかならんけど 配列なら int a[3]; sizeof a / sizeof a[0] で要素の数 3 がとれるだろ? それと同様に、 列挙型から列挙子の数をとる一般的な方法はあるかって話 ちなみに今んとこなさそうって思いながら聞いている
581 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 01:09:20 ] そういうことね 列挙型の列挙子の数をとる方法ない(気がする) しばしば、一番最後にダミーを入れたりするが、 enum { foo = 128, bar, baz, dummy }; とかしているときには終わっている そもそも何の目的で列挙子の数を知りたいのかによって、 別の解決方法があるかもしれない
582 名前:デフォルトの名無しさん [2009/11/10(火) 01:42:16 ] >>581 ことの発端は >>549 でさ 俺が >>557 と返したら >>571 ときたわけよ ダミー列挙子みたいな不純物を必要としない きれいな方法はバラ変数か構造体で、 配列の用途じゃねえだろって立場をとってたんだ それで仮に列挙子と配列の要素をきれいに対応させる バラ変数や構造体よりも合理的な方法を誰か示したら 俺の負けかなって思って詰ろを作って待っていたんだが みんな寝ちまったみたいだし、俺も眠いし・・・
583 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 01:55:49 ] >>558 グローバル変数が構造体で1億個とかあるらしい>某住基ネット上アプリ
584 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 02:10:11 ] >>583 ネタだと思いたいが、ひょっとして子[1]、子[2]...は駄目で、 長男、次男、三男...とかになってるのだろうか。
585 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 02:59:01 ] >582 >それで仮に列挙子と配列の要素をきれいに対応させる つまり、それは写像だな 列挙子集合E = {x | x e _N}, 配列A = {y | y e _R}が存在し、 f: x e E -> y e Aなるfを定義すれば良い 最初は全単射と思ったが、単に単射(|E| ≧|A|)であればよかった f def= ∀y e A [∃x e E]ごめん、数学そんなにやってないんだ C言語では、 type_t f(enum E x) { int x_dash; /* do_something */ /* 例えば、x_dash = x / 2; */ x_dash = x / 2; return A[x_dash]; } もっとも、 type_t A[N]; /* N = 128とか */ type_t *map(type_t *array, enum E x) { return (array+hash(x)); } int hash(int x) { return x % sizeof A; } となるが、これが合理的かと問われたら、 まったく合理的ではありませんでした、ありがとうございました と言うよりこれは、整数のハッシュ法じゃないかよ
586 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 03:21:26 ] C言語に限らないプログラミング言語一般論の領域 になってしまっている件と、生半可な集合論数学表現とか 振り回す人が出てきてる件について、この話題はいったん休止が 良いかと
587 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 03:28:57 ] >>582 普通についてる>>560 を何でスルーしたんだろうなぁ それはそれとして、cのenumはやっぱ不便だよね。 他言語で改良されてる点はまさに改良だなと思う。
588 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 03:31:36 ] >>586 しかもあさっての方向の話はじめちゃってるしね
589 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 03:43:19 ] データ構造上やアルゴリズム上のエレガントな問題解決手段という 理由から配列を使うというのは古き良きアカデミズムな世界の話。 現実のプログラミング現場では名前空間管理の負荷が大幅に 軽減されるというコード作成上のメリットが絶望的に大きいので、 エレガントになろうがなるまいが構造体配列を使わざるを得ない ことが多い。(てかほぼ全て) しかしそこには問題の無理な構造化、規格化による現実との乖離の 危険性が伴うので、問題視する人も多い。
590 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 03:46:40 ] 構造体も配列も堅固な理論的バックボーンの成果じゃなくて 苦し紛れに作られたシンタックスシュガーに近い
591 名前:249 [2009/11/10(火) 10:13:04 ] >>249 >>440 >>448 ですが >>450 をどこにいれればいいかわかりません… >>440 を基盤に作りたいんですが>>450 はどこにいれるんですか?
592 名前:デフォルトの名無しさん [2009/11/10(火) 10:16:53 ] >>586 ここで出てきている配列と列挙子は、 C に特有の性質を十分に使っているし、 性能面の評価も C 流だが? >>587 コンパイラのシンボルルックアップが 実行時のアドレス計算として持ち越されるわけだが 全レスの義務はないし個人的につまらなかったんで・・・
593 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 11:06:19 ] >>591 消したコードを元に何を言ってるんだ? >>592 プロセッサレベルで元コードが配列として表現 されていたのかそうでないのかを区別することが出来る とでも思っているのか?
594 名前:デフォルトの名無しさん [2009/11/10(火) 11:14:35 ] >>593 色々仮定をおけば区別がつかなくなる場合はありそうだが この流れの中でそんなのに構うつもりはない
595 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 12:24:11 ] >>592 実行時のアドレス計算は関係ないよね。 コンパイル時のシンボルルックアップ負荷の話でしょう?
596 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 12:25:39 ] コンパイルにやたらと時間がかかった昔ならともかく、 今でもそういうことって気にすべきものなの?
597 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 12:47:29 ] 昔だって気にしないよ
598 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 13:32:59 ] そういうことを気にすべきじゃないよ。 けれど、今でもビルドにやたら(数時間でいい?)と時間がかかる場合は少なくともC++でまれによくある あえてこういう表現にしてみた。
599 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 13:41:48 ] 誤解があるといけないので。 シンボルルックアップのせいでやたらと時間がかかる場合があるということではないです。 もしそうなった場合にそれをコードの面で解決しようとすることはないでしょうね
600 名前:249 [2009/11/10(火) 13:43:31 ] コードきれていました >>249 >>440 >>448 ですが >>450 をどこにいれればいいかわかりません… www.dotup.org/uploda/www.dotup.org348416.txt.html を基盤に作りたいんですが>>450 はどこにいれるんですか?
601 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 14:22:07 ] 「まれによくある」って2ch語?
602 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 14:22:35 ] 消えないように貼っておいたげた codepad.org/TuCBekq8
603 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 14:23:58 ] >>601 2ちゃんではまれによく見るね
604 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 14:26:34 ] >>601 ググればすぐ答えが出るようなものを、一々質問してんなよw
605 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 14:27:48 ] まれによくある の解釈 数的には実はよくある がそういうのは集積されており 目にすることは意外に少ない
606 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 14:34:47 ] 配列を使うことによるメリットとデメリットを列挙出来る?
607 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 14:37:55 ] 出来る
608 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 15:04:50 ] 居座ってる人が何をしたいのか分らん
609 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 15:21:29 ] 出来るがしない
610 名前:デフォルトの名無しさん [2009/11/10(火) 15:58:42 ] >>595 だから何つっちゃうよ? プログラム中に何万だかあるシンボルを同一空間に置けつったんだろ >>560 はよ、でそれを俺はつまんねつったわけ つーか、#define から enum へもう流れが変わってるんだが、まだ翻訳フェーズ(4)にこだわりたがるのは何でだ? 255歩譲って、翻訳フェーズ(4)の話に戻っても、翻訳環境の負荷を軽くって定量的にどのくらいやるべきだと思っている? それは配列が向かない用途(断言)に、理を曲げてまで配列を使わせるほどの事情たりえたことが、おまえさん自身あったのか? そのうえでだが、それは配列の存在意義を聞かれたときの答えとして妥当だと思うか?
611 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 16:26:11 ] オタクがきれた^^
612 名前:デフォルトの名無しさん [2009/11/10(火) 16:48:25 ] C言語の勉強をしたいのですが、関係した資格はなんですか? 情報処理2種ですか?
613 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 16:52:27 ] 今は情報処理2種っていう資格は名前が変更になって C言語以外もいろいろ選択できるようになってるけど それでいいんじゃないでしょうか。
614 名前:デフォルトの名無しさん [2009/11/10(火) 16:58:30 ] ニコニコ動画で2009年10月15日に投稿された「【プログラミング】テトリスを1時間強で作って みた【実況解説】」という動画が人気を集めている(写真1)。公開されてから2週間ちょっとで 15万回以上も再生され,コメントも数多く寄せられている。 内容は,開発ツールのインストールからスタートしてWindows環境でC言語を使い,わずか1時間強 でテトリスを完成させるというもの。そのあざやかな手腕には,感嘆の声がコメントで寄せら れている。プログラミングそのものがエンタテインメントになっており,1時間強見ていても全く 飽きることがない。 ニコニコ動画で「うp主」と呼ばれる動画投稿者はどんなプログラマなのだろうか?と思い,インタ ビューを申し込んでみた。うp主の名前は,紀平拓男さん。東京・南青山で携帯電話向けのソフト ウエア開発会社ブロードテイルを経営する若きプログラマCEO(最高経営責任者)だ。きっとプログラ ミング初心者の参考になる話を聞けるに違いない,と期待しながらインタビューを始めたが,予想以上に “すごい”紀平さんのプログラミング歴に圧倒される結果となった。 ──1時間強でテトリスを作れるのはすごいですね。プログラミング歴を教えてください。 幼稚園のころからですね。当時,セガが「SC-3000」というパソコンを出していて,これが家にあり ました。あるとき,親が「ベーマガDX」(注:電波新聞社が発行していたプログラミング雑誌「マイコン BASICマガジン」の別冊。様々なパソコン用のゲーム・プログラムなどを掲載していた)を買ってきた ので,そこに載っているプログラムを打ち込んでいました。 当時は「これを打ち込むとゲームができる」という認識しかなかったですが。SC-3000には顔のキャラ クタがあってそれをBASICのPRINT文で表示して親に自慢げに見せていたそうです。 テトリスを1時間強で作ってみた(ニコニコ動画) www.nicovideo.jp/watch/sm8517855 itpro.nikkeibp.co.jp/article/Interview/20091104/340019/
615 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 17:03:36 ] ニコ厨ってだけでちょっとね
616 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 17:07:52 ] あえてまれによくあると表現したのはTMPだとよくあるけどTMPを駆使するのはまれだから。
617 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 17:09:33 ] >>610 おお、どうしたんだい? そもそもの、プログラム中に何万だかあるシンボルが同一空間にないという仮定を持ち出してはならんぞ。
618 名前:デフォルトの名無しさん [2009/11/10(火) 17:29:06 ] >>617 なんだそりゃ どっから出てきた? 配列を使うからか? 違うね、配列を使うにしても分割のしようはあるが おまえさん翻訳フェーズ(4)にご執心なんだっけ #undef という手はあるが、前述のとおり俺は興味ない 面白そうな話でも出てくれば別だが今んとこ否定する
619 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 17:49:59 ] >>618 ちがうちがう。 配列にする前の、数万だか数十万だかの変数が、同一空間にある可能性を元の話題で否定していないのよ。
620 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 17:51:27 ] ちなみに>>599 も俺で、 > 配列が向かない用途(断言)に、理を曲げてまで配列を使わせるほどの事情たりえたことが、おまえさん自身あったのか? もちろんない。
621 名前:デフォルトの名無しさん [2009/11/10(火) 18:25:11 ] >>619 元々が同一空間にぶちまけられた瓦礫の山でも何とかするのが俺らの仕事 そこで配列の出番かどうかが、この流れでの論点だったはずだが、違うかい?
622 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 18:27:16 ] テトリスくらいできるよ馬鹿野郎
623 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 18:33:01 ] 1時間でコールオブデューティー4を作る…とかだったら。
624 名前:デフォルトの名無しさん [2009/11/10(火) 18:53:39 ] むかーし、PC ショップであたかも即興でマシン語たたいて得意がってたのがいたが 何のことはない暗記してきたコードを再生していたに過ぎない(本人談
625 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 19:00:51 ] 砂漠が良いか賽のが原が良いかってことだったらどちらも かなり困ったもの。程度問題。メリット、デメリットのバランス で決めるべき問題だろ
626 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 19:01:29 ] むかーし、pcショップで文字列を繰り返し表示させて画面を埋めるプログラムを書いたら、 ちょっと目をはなした隙に画面中央にその文字列を色を変えながら表示するプログラムに 書き換えられていたでござる。
627 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 19:03:02 ] それからも書き換え合戦は行われ、生まれたのがWindowsです。 相手は嫁です。
628 名前:デフォルトの名無しさん [2009/11/10(火) 19:08:54 ] 0 new cls
629 名前:デフォルトの名無しさん [2009/11/10(火) 19:12:31 ] >>626 POKE 文でアトリビュート変えたんだろな
630 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 19:40:31 ] >>626 実は私が犯人かもしれないw 詰まらないデモが動いてたら今で言う「伝言板スクリーンセーバー」的な プログラムを動かすくらいはよくやってたから。 それも、リストを覗かれないように一行野郎で。
631 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 01:00:13 ] enum number{ one, two, three, four, five, six, seven, nine, zero };
632 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 20:12:09 ] 4の倍数のアドレスにあるintと4の倍数からずれてるアドレスにあるintって計算コストって同じ?
633 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 20:30:10 ] >>632 アドレッシング単位のプロセッサやメモリバスとのミスマッチの 問題は本来はかなり深刻。アドレスによって処理速度がかなり 極端に変わってしまう。 ただPCに限って言えばプロセッサのキャッシュが多層化され、 アドレッシング単位の違いによる相違を吸収されてしまっている 現在あんまし寝た子を起こすような質問をしないこと
634 名前:デフォルトの名無しさん [2009/11/11(水) 21:13:55 ] >>632 境界要求に違反するアクセスの結果を C は言語規則として定めない
635 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 21:36:29 ] 大抵はコンパイラが良い位置に配置するだろ。 char a, b, c; int d; とやったら c のあとに1バイトの未使用領域作ったり、 d a b c の順にするとか。
636 名前:デフォルトの名無しさん [2009/11/11(水) 21:44:53 ] 自動変数ならレジスタ割付するだろ
637 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 21:51:54 ] ちんこ
638 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 21:52:17 ] ほら湧いてきた
639 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 22:38:15 ] 今思うとハァ?な叱られ 「構造体は必ずビットフィールド使え! メモリは少しでも節約するのが常識だ!」 「mallocを無駄がないように確保しろ!」
640 名前:デフォルトの名無しさん [2009/11/11(水) 22:40:55 ] unsigned int *uint; と宣言したものを、 *(long int *)uint; とキャストするとuintは何になるのですか。 long int **uintですか。 int int32; (int *)int32; とか、何になるのかよくわからないのですが。
641 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 22:50:17 ] long int だろ。
642 名前:デフォルトの名無しさん [2009/11/11(水) 22:50:21 ] 叱っている側としては 「ビットフィールド、ビット演算とは実体が何かよく理解して使え」 「詳細に着手する前にシステム全体のキャパシティとストラテジを把握しておけ」 「malloc の計算間違いは以ての外、超最低なので絶対にやるなよ」 といっているつもりなんだが、この原発信が 昼下がりに心がすでにアフター5な「ニュータイプ」たちの脳内で どんな減衰劣化を受けているかは、近頃なかなか驚きゃせん だからスパイラルを何回回れるかで道はまだあったりする 甘くも苦くもね
643 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 22:56:23 ] そもそも言われた言葉の意味を理解していないからな
644 名前:632 mailto:sage [2009/11/11(水) 23:01:33 ] レスd ホンとはだめだけどPCなら気にスンナってことか
645 名前:デフォルトの名無しさん [2009/11/11(水) 23:17:45 ] いや、恐いよ 平然とビットズレを一切何の警告もなくやってのけたり 例外をつかまえるのにシステムコールが必要だったり
646 名前:デフォルトの名無しさん [2009/11/11(水) 23:18:23 ] ユーザモードでバッチグーだったコードが特権モードではNGだったりね
647 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 06:25:16 ] プログラマが完璧に制御できてると思ってるmallocは、OSがテキトーに確保してプロセスに渡してるだけ 本当にそれだけ確保したか分からないし中の挙動も分かってない でなきゃフラグメントなんか起こり得ない
648 名前:デフォルトの名無しさん [2009/11/12(木) 07:13:04 ] そのへんは「情報隠蔽」の理念に乗れる人と乗れない人の差だね 別に C++ でなくとも C でもやっぱり解ってなきゃいかん