- 1 名前:デフォルトの名無しさん [2007/10/24(水) 04:07:56 ]
- なんと!意外にもスレが無かったので立ててみました
先日のソフトウェア開発技術者試験午後UのB木のポインタ表現 近年の基本情報技術者試験の午後C言語問題の自己参照構造体 など物凄く出来が悪いです。 ゆとり?文系?自作減少? ブラックボックス化されてメモリ管理やコンピュータの細かい知識が不要となった? 本当にポインターは必要なのか!?議論しましょう
- 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 ]
- 実際見たら、グロなんだろ。
- 821 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 01:31:10 ]
- グロいものほど美味い。これは定説です。
- 822 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 07:03:52 ]
- ポインタ使った事無いから事故にならなかったんだろ。
こっそりやってるなら、どうせわからないからいいけど、 堂々と自慢されると、やっぱりな、あれだよ・・・
- 823 名前:796 mailto:sage [2008/01/15(火) 09:15:50 ]
- よーするに、memset()は使い道が無いってことかい?
- 824 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 10:40:09 ]
- >>823
環境依存でもよくて、標準の真っ当なコードに較べれば多少は速いかもしれないコードを使いたくて、 Intrinsicが用意されていないか使えなくて、インラインアセンブラが用意されていないか使えなくて、 他の手段が見つからないか、過去の遺物を使う為に必要。
- 825 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 12:05:51 ]
- とりあえず書いとけば誰かが直してくれるさ
- 826 名前:808 mailto:sage [2008/01/15(火) 14:26:44 ]
- まともな反論は>>812くらいか。
かなりはしょってて共通の関数なんかをすべて省いてるから>>812の感想はもっともだけど、 実際の事務処理アプリの現場ではその「キモイおもちゃ作り」とやらが蔓延していたのもまた 事実としてあるんだから、自分だけ高みから見下して一蹴してしまうすような>>812は、俺には 少し世間知らずに見えてしまうな。 >>815 「やっぱり」ってなんだ? テメーで反論せずに誰かに反論してもらって「やっぱり」って思ったの? まさに>>811に出てる「虎の威を借る狐」=ザコだなお前。 あと「反論してみ?」って見下してるけど、テメーは何も言ってないよねw なんなんだお前は〜w
- 827 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 14:27:45 ]
- こんなネタで盛り上がれるお前らの時間の贅沢な使い方に脱糞
- 828 名前:808 [2008/01/15(火) 14:31:40 ]
- このスレ、極少数は経験も知識も豊富っぽいのがいるかも知れないけど、
その他はザコばっかだね。しかも性格が悪すぎ。 >>806に対しての>>807は何だ。 知識も経験もないけど一方的に悪口言ってストレス解消ですか? 反論したいならテメーでしろ。 できないなら実のある話しろやボケ。 だから過疎るんだよこの板。
- 829 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 14:33:00 ]
- うん。
- 830 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 15:49:25 ]
- 血圧が高いんじゃない?
高血圧は万病の元だよ。 まじで心配
- 831 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 17:50:03 ]
- >>828
で、ちみはポインタの何がわからなくて躓いてるんだ?
- 832 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 18:12:13 ]
- ポインタとmemsetって関係なくね?
- 833 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 18:19:10 ]
- もとは、ポインタをビットパターン0にしちゃだめだろ、って話だったけどな。
- 834 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 19:26:38 ]
- >>810といい、>>816と>>817の自作自演といい、ガキが多いのは感じる
ゆとりって言葉は嫌いだけどつい使ってしまいそうな程
- 835 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 19:31:55 ]
- memsetの話出てからこのスレつまんなくなった
- 836 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 19:48:20 ]
- どこまで行けば面白くなるのか遡ってみたら>>1に到達してしまった
- 837 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 19:51:28 ]
- >>834とか>>828あたりで十分面白いだろ。
- 838 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 21:15:09 ]
- 結局memsetで初期化することの問題点は、
浮動小数点数やポインタの内部表現が環境依存であるから 0.0やNULLに初期化されるとは限らないということだけ?
- 839 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 22:02:23 ]
- >>838 そだよ
つか, memset なんて組み込みやるときの bss の初期化にしか使った事ねぇし…
- 840 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 12:36:15 ]
- 某A賞のシステムでもそんなの誰も気にせずmemsetしてるけどな
- 841 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 13:14:03 ]
- Cでgotoは絶対に使ってはいけない、という神話に似てる
- 842 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 13:51:46 ]
- >>835-837
m9(・∀・)自作自演だろ!! 違うかな? たぶん>>816-817と同一人物と見た。もしこの推測が合っていたら、 おまいは姑息で卑怯なこざかしい人ですね
- 843 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 14:04:59 ]
- まじで病院行け。
- 844 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 14:44:02 ]
- 835は俺です
他は違います
- 845 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 15:18:02 ]
- 頭のおかしい人にマジレスしてもw
- 846 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 09:28:36 ]
- __,. -─-- 、_
, - ' _,´ --──‐- ) ,イ´__-___,. -‐ '__,. - '´ `ー----, - ' ´ ̄ `` 、__ __,ィ ヽ. `ヽ. , '⌒Y / 、ヽ ヽ ヽ. / / i /l/|_ハ li l i li ハ . // 〃 /l i|j_,.//‐'/ lTト l、l j N i | {イ l / l li //___ リ_lノ lル' lハ. ソ ___◎_r‐ロユ i| /レ/l l l v'´ ̄ , ´ ̄`イ !| ll,ハ └─‐┐ナ┐┌┘ _ ヘ____ ハ| ll∧ハヽ ト、 '''' r==┐ '''' /l jハ| ll ll /./┌┘└┬┘└┼────┘ロコ┌i 〃 ‖ レ'¨´ヽiへ. _ 、__,ノ ,.イ/|/ ノ ll l| </  ̄L.l ̄ ̄L.lL.! ┌┘| ll ll { ⌒ヽ_/ } ー‐<.__ ′ l| ‖ ‖ ‖ ヽ, /、 〈 |:::::::| `ヽ ‖ ‖ {. ハ ヽ Y`‐┴、::::v l ‖ ‖ |iヽ{ ヽ_ゾノ‐一’::::ヽ. | ‖ ‖ |i:::::`¨´-- :::......:...:.:.::.}| ‖ ‖ |i::::::ヽ._:::_:::::::::::::::::::_ノ | ‖ ‖ |i::::::::::::i___:::::::::::/ | jj::::::::r┴-- `ー‐ '⌒ | 〃:::::::マ二 _,ノ //::::::::::::i ー 一 '´ ̄::. ,','::::::::::::::i::::::::::::::::::::::i::::::ヽ
- 847 名前:デフォルトの名無しさん [2008/01/18(金) 13:58:42 ]
- ぴぴるぴるぴるぴぴるぴ〜
- 848 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 16:55:30 ]
- memsetだってwin32api使ってたらよく使うし
まぁ、ようは、どんな関数でも使う奴しだいだろ
- 849 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 22:05:01 ]
- ほとんど見かけないようなプラットフォーム向けにも移植性を確保しておきたいかどうかだな
zlibみたいなライブラリではそうする価値があるかもしれないが、俺が書くようなコードではどうでもいい…
|

|