1 名前:デフォルトの名無しさん [2007/10/24(水) 04:07:56 ] なんと!意外にもスレが無かったので立ててみました 先日のソフトウェア開発技術者試験午後UのB木のポインタ表現 近年の基本情報技術者試験の午後C言語問題の自己参照構造体 など物凄く出来が悪いです。 ゆとり?文系?自作減少? ブラックボックス化されてメモリ管理やコンピュータの細かい知識が不要となった? 本当にポインターは必要なのか!?議論しましょう
692 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 20:49:02 ] malloc()したときに確保した要素数わかってるんだから、 それを関数に渡せばいいだけだと思うが。 要素数を教えないで、どうやって終端を認識するの?
693 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 20:58:44 ] void hoge(int **ary, int m, int n) { /* ごにょごにょ */ } int main(void) { int **ary; int m, n, i; /* m, nに配列長を代入 */ ary = malloc(m * sizeof(int *)); for (i = 0; i < m; i++) ary[i] = malloc(n * sizeof(int)); return 0; } こういうことじゃないの?
694 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 22:23:32 ] 配列でもポインタが扱える では無く、むしろ 配列はポインタで処理される と考えるんだ
695 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 00:33:27 ] つか、STL使えよって話だよな
696 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 20:29:52 ] OTLもなかなかいいよ
697 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 20:36:39 ] ポインタの壁に挫折した人みたい
698 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 04:26:47 ] いろいろ書いて実行してみること。 アセンブラしてたからかな?すぐ理解できた。
699 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 09:21:28 ] 今からポインタ学ぼうって人が「じゃあアセンブラからやろう」って思う訳が無い
700 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 12:01:32 ] アドレス変換テーブルの話なんか聞かされて よけいわけわからなくなっちゃったような奴なら じゃあアセンブラからやろうと思うんじゃないか
701 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 14:13:17 ] やる気さえあればすぐ覚えられる 最長でも1日悩み抜けば覚えられるレベル 厄介なのは、すぐ意気消沈してしまう性格
702 名前:デフォルトの名無しさん [2007/12/22(土) 03:07:15 ] ** をポインタのポインタなどと訳する事で余計に初心者の理解を妨げてるように感じる。
703 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 03:11:39 ] じゃあなんて
704 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 03:29:18 ] ポインタ(変数|オブジェクト|インスタンス)へのポインタ
705 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 03:34:15 ] ようするにポインタへのポインタじゃないか
706 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 11:26:22 ] pointer to pointer 「の」は適切じゃないかもな
707 名前: mailto:sage [2007/12/22(土) 11:26:53 ] ポインタ変数を型とするポインタとか
708 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 11:35:30 ] >>707 わけわからん
709 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 12:45:55 ] toに引きずられてるアホども
710 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 13:05:50 ] ポインタとポインタでいいじゃん 2こ仲良くていいじゃん
711 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 13:36:43 ] int x = 1, *px, **ppx; px = &x; ppx = &px; printf("%d %d %d", x *px, **px);
712 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 13:54:03 ] >>711 いいたいことは判るが > printf("%d %d %d", x *px, **px); printf("%d %d %d", x, *px, **ppx);
713 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 14:32:04 ] 「ポインタのポインタ」と聞いて、その本質と真意を理解できないおまえらは、頭悪い。 100の言葉をもって、最初から最後まで全てを語りつくさないと理解できないのか?
714 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 15:04:33 ] 初心者にとっては解りにくいって話が、どうしてそうなる?
715 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 15:10:02 ] それは誤解 言葉がわかりにくいんじゃないんだよ
716 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 15:10:08 ] ポインタのポインタ の検索結果 約 4,450 件中 1 - 10 件目 (0.02 秒) www.google.co.jp/search?hl=ja&q=%E3%83%9D%E3%82%A4%E3%83%B3%E3%82%BF%E3%81%AE%E3%83%9D%E3%82%A4%E3%83%B3%E3%82%BF ポインタへのポインタ の検索結果 約 2,600 件中 1 - 10 件目 (0.21 秒) www.google.co.jp/search?hl=ja&q=%E3%83%9D%E3%82%A4%E3%83%B3%E3%82%BF%E3%81%B8%E3%81%AE%E3%83%9D%E3%82%A4%E3%83%B3%E3%82%BF ダブルポインタ の検索結果 約 2,430 件中 1 - 10 件目 (0.21 秒) www.google.co.jp/search?hl=ja&q=%E3%83%80%E3%83%96%E3%83%AB%E3%83%9D%E3%82%A4%E3%83%B3%E3%82%BF
717 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 16:15:03 ] char *cp; を「charのポインタ」って言うんだから、 void **pp; を「ポインタのポインタ」って言ってもいいじゃないか。
718 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 16:20:44 ] うん
719 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 16:23:48 ] 俺char *は「charへのポインタ」と言っているよ。
720 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 16:25:29 ] >>717 ポインタ=何かを指す=指向性のあるもの。よって、 char *cp は「char型へのポインタ」 void **pp は「void型へのポインタへのポインタ」
721 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 16:27:03 ] うん
722 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 16:28:10 ] >>720 それでもいいけどね、「へ」は無くてもいいんだよ。
723 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 16:35:02 ] >>720 型は指してないんじゃね?
724 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 16:43:12 ] 俺も意識して 「〜のポインタ」とか「関数ポインタ」とかじゃなくて 「〜へのポインタ」って言ってる
725 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 16:48:16 ] それでも通じるからいいんじゃね
726 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 16:48:18 ] 「へ」は重要だ。「へ」があることによって、何かを指してると認識できる。 「〜のポインタ」だけだと意味が通じない。 …ということを言いたかった。
727 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 16:48:59 ] いや「へ」はなくても通じるんだよ
728 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 16:53:22 ] そもそもポインタって何かを指すものじゃん
729 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 17:32:03 ] 初心者にとって、という話だろ?「へ」はあったほうがいいよ。 既に理解してる人にはどっちでもいい。
730 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 17:38:55 ] 初心者にとっても有っても無くても同じ。
731 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 17:56:14 ] じゃあvoid ***pppはなんていうの? char ****cpppはなんていうの?
732 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 19:01:12 ] そんなものは出てきてはいけないw
733 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 19:53:13 ] ___ ━┓ / ―\ ┏┛ /ノ (●)\ ・ . | (●) ⌒)\ . | (__ノ ̄ | \ / \ _ノ /´ `\ | | | | ___ ━┓ / ― \ ┏┛ / (●) \ヽ ・ / (⌒ (●) / /  ̄ヽ__) / . /´ ___/ | \ | |
734 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 20:38:12 ] 「への」に1票
735 名前:デフォルトの名無しさん [2007/12/22(土) 22:39:37 ] >>731 void ***pppやchar ****cpppなんて使う機会ない
736 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 02:26:02 ] へ へ の の も へ
737 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 04:23:45 ] >>731 初心者がそんなもの使うかアホ 極論に持って行こうとするなよボケ
738 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 13:59:37 ] ダブルポインタでええやん。
739 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 14:23:10 ] じゃあダブポで
740 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 14:23:33 ] ゾッ
741 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 02:33:11 ] **のまま使ってる時点でほとんどクソコードだろ。 ふつうtypedefにするかstructにいれる。
742 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 09:29:32 ] いやいや、ある構造体の領域をヒープから確保する関数の場合とか、 **を渡した方が自然な場合もある。
743 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 13:07:01 ] どうせならデュアルポインタのほうがかっこよくね?
744 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 14:07:43 ] クアッドポインタにオクタポインタっすね
745 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 17:19:37 ] ポンタでよくね?響きが萌える
746 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 17:22:22 ] ポイポインタ
747 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 20:46:28 ] つ[*&]
748 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 21:01:54 ] ポインヨ
749 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 22:06:00 ] >>745 あのjunkyのおっさんですか?
750 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 00:05:43 ] ツインポインタ
751 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 00:39:04 ] ポインポイン
752 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 00:40:28 ] ポインティングゥー!ポインタァー!!!
753 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 02:17:22 ] 日本語でいいだろ。「二次ポインタ 」
754 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 02:42:06 ] 「ポインタ」も日本語にしろ
755 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 02:46:15 ] 刺す人
756 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 02:46:48 ] そういわれればポインタの日本語訳って見かけないね イテレータは反復子と訳されるのに
757 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 02:55:56 ] じゃ、「二次指示子」
758 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 19:59:17 ] ポインタの和訳は…そうだな…「オブジェクトリファレンス」ってのはどうだい?
759 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 03:35:43 ] 参照じゃねーかw
760 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 05:40:44 ] その前に突っ込むところがあるだろw
761 名前:デフォルトの名無しさん [2007/12/27(木) 07:59:20 ] ポインタはウルトラマンセブンに出てくる乗り物だよ
762 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 13:16:11 ] ウルトラマンのやつは「ポ↓イ↑ン↑タ↓ー↓」 コンピュータ用語のほうは「ポ↑イ↑ン↓タ↓ー↓」
763 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 14:43:31 ] 違うだろ。
764 名前:デフォルトの名無しさん [2007/12/27(木) 16:35:25 ] 和訳なら矢印だな
765 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 18:19:45 ] int *ip int* ip ptr<int> ip 1番目より2番目の方が、2番目より3番目の方がわかりやすいと思うんだけどどうよ。
766 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 18:26:25 ] どうといわれても
767 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 18:42:59 ] ポインタ宣言子と間接参照演算子が別の記号だったら混乱起こさなかったのに。
768 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 19:10:47 ] C++のスマートポインタはその点で気が利いてる。 Cだと表現しようがないんだけど。
769 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 19:54:56 ] いまさら宣言の記法に注文つけてどうなる。
770 名前:デフォルトの名無しさん [2007/12/27(木) 20:27:21 ] 宣言の記法に注文付けたい奴は typedef int* intptr; とでもしやがれってんだ。 こんな事してるソース見たことはないが でもwin32apiのソース読むと typedefしまくりで、あんぐりする。
771 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 20:54:56 ] int* p, q;
772 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 21:47:44 ] int q, *p; これと>>771 が等価ってのはひどい。
773 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 21:47:47 ] >ポインタのポインタ ハンドル…。
774 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 06:51:30 ] >>773 昔のMac以外にそういう呼び方をする流儀ってあるのか
775 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 07:22:09 ] >>774 別に流儀じゃなくて、一つのメモリ管理モデルとしてあるわけで。 (MacOSに影響受けているから当然と言えば当然だけど)PalmOSでもハンドルで管理していたし。
776 名前:デフォルトの名無しさん [2007/12/29(土) 12:23:49 ] string使えはええやん。
777 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 13:04:32 ] は?
778 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 16:26:01 ] CPUエミュレータ作るとき、関数ポインタの配列を使いまくった。
779 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 06:19:59 ] クラスのメンバ関数の宣言にvirtualを使用すると関数ポインタになる件に関して クラスの変数の初期化が面倒だからmemset(this,NULL,sizeof(*this))でうっかりvirtualを含むクラスを初期化してしまうと実行時エラーにw
780 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 10:19:27 ] あたりまえやん
781 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 01:12:26 ] >クラスの変数の初期化が面倒だから そういう用途にはmemset使うなってエロイ人が言ってたよ。
782 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 19:58:20 ] memsetなんてもうずーっと使ってないなー
783 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 20:01:49 ] >>779 >memset(this,NULL,sizeof(*this)) ここでNULL使うのはおかしくね?
784 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 22:14:45 ] そもそもmemset()使うのがおかしいからどうでもいいよ。
785 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 22:47:58 ] www.kijineko.co.jp/tech/superstitions/initialization-by-memset.html >局所変数、特に集成体を宣言した後、実際に必要かどうかに関わらず、必ず memset でゼロクリアする人は大勢います。 >しかし、そんなコードを見かけたら、それを書いた人のコードはすべて疑ってかかった方がよいかもしれません。
786 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 22:55:34 ] 構造体単体でもmemsetする奴は危険だよ
787 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 23:03:41 ] 別にmemsetそのものは危険じゃないよ。
788 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 23:09:05 ] する奴は って書いてある
789 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 23:10:03 ] うん、そうだね。書いてあるね。 でもそんなことは関係なしにmemsetそのものは危険じゃないよ。
790 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 23:12:30 ] ポインタと全然関係ない話題ですねw
791 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 23:17:06 ] struct A a; memset(&a, 0x00, sizeof(struct A)); もう馬鹿かとw こんな後に if( a.hoge != NULL) とかやってる奴ちょっと来い ぬっこしてやるから
792 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 23:20:21 ] 勝手にすればぁ〜