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


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

ポインタはどうやって学ぶべきか



1 名前:デフォルトの名無しさん [2007/10/24(水) 04:07:56 ]
なんと!意外にもスレが無かったので立ててみました

先日のソフトウェア開発技術者試験午後UのB木のポインタ表現
近年の基本情報技術者試験の午後C言語問題の自己参照構造体
など物凄く出来が悪いです。

ゆとり?文系?自作減少?
ブラックボックス化されてメモリ管理やコンピュータの細かい知識が不要となった?

本当にポインターは必要なのか!?議論しましょう

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 ]
勝手にすればぁ〜

793 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 05:16:33 ]
局所変数の初期化って不要なの?

struct {
int a;
int b
int c;
} data;

struct data;
data.a = 0;

とやったとき、bとcには何が入っているのか確定してる?

794 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 06:47:12 ]
もちろん不定

795 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 07:40:39 ]
>>793
スレ違い。まぁ、そもそもコンパイル通らないだろうからどうでもいいけど。

796 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 09:06:04 ]
構造体を初期化するのにmemset()を使わないなら、memset()なんて何に使うのさ?
そもそもゼロクリアなんていらねーよ、って話?

797 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 10:27:06 ]
>>796
そもそも NULL == アドレス0 って保証はないわけなんだが


798 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 11:20:52 ]
>>797
メンバにポインタが含まれる構造体の話か。でもそれなら、

struct DATA data[10] = {0};

という書き方も正しい保障は無いということになるよね。どうすりゃいいの?



799 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 12:05:18 ]
={0} は正しい。memsetでゼロクリアするのとは異なる。

800 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 12:14:52 ]
>>799
>>797

801 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 13:42:40 ]
>>800
void *p = 0;
などとしたとき、p はアドレス 0 を指すわけじゃないぞ。
定数 0 は処理系依存のヌルポインタのビットパターンを作り出す。

struct DATA data = {0}; は、構造体 DATA の各メンバを
定数の 0 (ビットパターンが 0 なわけではない) で初期化するから、大丈夫だよ。

802 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 18:47:35 ]
釣られすぎ

803 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 22:09:46 ]
なるほど、釣りだったということにしたいわけか

804 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 22:26:20 ]
ヌルポ インタ

805 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 00:41:13 ]
>>804
ガッ

806 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 13:46:21 ]
今はVSでクラスなんかをガシガシ使ってるから使わないけど、
一昔前にUNIXで開発してた頃はstructでデータ構造を設計して、
使用時には
memset(&data, 0x00, sizeof(data));
などのように初期化してから使う、というのが常套句だったよ。俺は。

807 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 15:09:53 ]
はい、スレの皆さん
新年特別DQN >>806入りました〜

かわいがってやってください。w

808 名前:806 [2008/01/14(月) 17:20:45 ]
■データ構成
  #define DATAMAX 255
  struct {
    struct {
      int code;
      char name[16];
    } table[DATAMAX];
  } data;

■初期化
  memset(&data, 0x00, sizeof(data));

■DB等からセット
  for(i=0; i<DATAMAX; i++) {
    data.table[i].a = a;
    data.table[i].b = b;
  }

■取得関数
  char empty[16];
  char *getName(char *code)
  {
    for(i=0; i<DATAMAX; i++)
      return data.table[i].name;
    return empty;
  }
■使用
  strcpy(name, getName(code));



809 名前:806 [2008/01/14(月) 17:21:05 ]
>>807
かなりはしょってるが、上のレスのようにやってた。
DQN?俺がDQN?
他人に頼らず、テメーだけの力で批判でも何でもしてみろや。
他力本願な口だけ野郎。

810 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 17:35:52 ]
コンストラクタで初期化してメンバは隠蔽した方がいいと思う

811 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 17:53:10 ]
【虎の威を借る狐】

他人の権勢に頼って威張るザコのたとえ

812 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 18:12:21 ]
>>809
本当にそんな汎用性のないキモイおもちゃ作り
ずっとやってたの?w

取得関数とかクエリ合わせてチューニングも
選択もできねーしこんな設計じゃ拡張性もない

ゴミすぎるだろw?

813 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 18:24:30 ]
>>806
WindowsAPIのほとんどは今もそうだね

814 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 18:46:28 ]
>>809
DQNかどうかは兎も角、>808を書いている時点でお郷が知れている。

815 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 18:53:08 ]
やっぱり>>806は痛い奴だったか
そんな臭いがプンプンしたしなぁ

反論してみ?


816 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 18:58:26 ]
お前のかあちゃんデベソ

817 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 18:59:35 ]
きさまっ!いってはならないことをぉおぉぉおおおお

818 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 00:06:55 ]
環境や用途によってやり方は違うだろうに「キモイ」って評価しちゃう奴はある意味スゲェと思う。



819 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 00:23:30 ]
>>818
OSS宗教様達は多いよ
リーなんちゃらという変態指導者の
影響だろうけど

自分達の受け入れたくないコード=グロ
って定義だし。

820 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 00:35:04 ]
実際見たら、グロなんだろ。






[ 続きを読む ] / [ 携帯版 ]

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

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