ポインタはどうやって学ぶべきかat TECH
ポインタはどうやって学ぶべきか - 暇つぶし2ch809:806
08/01/14 17:21:05
>>807
かなりはしょってるが、上のレスのようにやってた。
DQN?俺がDQN?
他人に頼らず、テメーだけの力で批判でも何でもしてみろや。
他力本願な口だけ野郎。

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

811:デフォルトの名無しさん
08/01/14 17:53:10
【虎の威を借る狐】

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

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

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

ゴミすぎるだろw?

813:デフォルトの名無しさん
08/01/14 18:24:30
>>806
WindowsAPIのほとんどは今もそうだね

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

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

反論してみ?


816:デフォルトの名無しさん
08/01/14 18:58:26
お前のかあちゃんデベソ

817:デフォルトの名無しさん
08/01/14 18:59:35
きさまっ!いってはならないことをぉおぉぉおおおお

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

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

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

820:デフォルトの名無しさん
08/01/15 00:35:04
実際見たら、グロなんだろ。

821:デフォルトの名無しさん
08/01/15 01:31:10
グロいものほど美味い。これは定説です。

822:デフォルトの名無しさん
08/01/15 07:03:52
ポインタ使った事無いから事故にならなかったんだろ。

こっそりやってるなら、どうせわからないからいいけど、
堂々と自慢されると、やっぱりな、あれだよ・・・


823:796
08/01/15 09:15:50
よーするに、memset()は使い道が無いってことかい?

824:デフォルトの名無しさん
08/01/15 10:40:09
>>823
環境依存でもよくて、標準の真っ当なコードに較べれば多少は速いかもしれないコードを使いたくて、
Intrinsicが用意されていないか使えなくて、インラインアセンブラが用意されていないか使えなくて、
他の手段が見つからないか、過去の遺物を使う為に必要。

825:デフォルトの名無しさん
08/01/15 12:05:51
とりあえず書いとけば誰かが直してくれるさ

826:808
08/01/15 14:26:44
まともな反論は>>812くらいか。
かなりはしょってて共通の関数なんかをすべて省いてるから>>812の感想はもっともだけど、
実際の事務処理アプリの現場ではその「キモイおもちゃ作り」とやらが蔓延していたのもまた
事実としてあるんだから、自分だけ高みから見下して一蹴してしまうすような>>812は、俺には
少し世間知らずに見えてしまうな。

>>815
「やっぱり」ってなんだ?
テメーで反論せずに誰かに反論してもらって「やっぱり」って思ったの?
まさに>>811に出てる「虎の威を借る狐」=ザコだなお前。
あと「反論してみ?」って見下してるけど、テメーは何も言ってないよねw

なんなんだお前は~w

827:デフォルトの名無しさん
08/01/15 14:27:45
こんなネタで盛り上がれるお前らの時間の贅沢な使い方に脱糞

828:808
08/01/15 14:31:40
このスレ、極少数は経験も知識も豊富っぽいのがいるかも知れないけど、
その他はザコばっかだね。しかも性格が悪すぎ。
>>806に対しての>>807は何だ。
知識も経験もないけど一方的に悪口言ってストレス解消ですか?
反論したいならテメーでしろ。
できないなら実のある話しろやボケ。
だから過疎るんだよこの板。

829:デフォルトの名無しさん
08/01/15 14:33:00
うん。

830:デフォルトの名無しさん
08/01/15 15:49:25
血圧が高いんじゃない?
高血圧は万病の元だよ。
まじで心配

831:デフォルトの名無しさん
08/01/15 17:50:03
>>828
で、ちみはポインタの何がわからなくて躓いてるんだ?

832:デフォルトの名無しさん
08/01/15 18:12:13
ポインタとmemsetって関係なくね?

833:デフォルトの名無しさん
08/01/15 18:19:10
もとは、ポインタをビットパターン0にしちゃだめだろ、って話だったけどな。

834:デフォルトの名無しさん
08/01/15 19:26:38
>>810といい、>>816>>817の自作自演といい、ガキが多いのは感じる
ゆとりって言葉は嫌いだけどつい使ってしまいそうな程

835:デフォルトの名無しさん
08/01/15 19:31:55
memsetの話出てからこのスレつまんなくなった

836:デフォルトの名無しさん
08/01/15 19:48:20
どこまで行けば面白くなるのか遡ってみたら>>1に到達してしまった

837:デフォルトの名無しさん
08/01/15 19:51:28
>>834とか>>828あたりで十分面白いだろ。


838:デフォルトの名無しさん
08/01/15 21:15:09
結局memsetで初期化することの問題点は、
浮動小数点数やポインタの内部表現が環境依存であるから
0.0やNULLに初期化されるとは限らないということだけ?

839:デフォルトの名無しさん
08/01/15 22:02:23
>>838 そだよ
つか, memset なんて組み込みやるときの bss の初期化にしか使った事ねぇし…


840:デフォルトの名無しさん
08/01/16 12:36:15
某A賞のシステムでもそんなの誰も気にせずmemsetしてるけどな

841:デフォルトの名無しさん
08/01/16 13:14:03
Cでgotoは絶対に使ってはいけない、という神話に似てる

842:デフォルトの名無しさん
08/01/16 13:51:46
>>835-837
m9(・∀・)自作自演だろ!!

違うかな?
たぶん>>816-817と同一人物と見た。もしこの推測が合っていたら、
おまいは姑息で卑怯なこざかしい人ですね

843:デフォルトの名無しさん
08/01/16 14:04:59
まじで病院行け。

844:デフォルトの名無しさん
08/01/16 14:44:02
835は俺です
他は違います

845:デフォルトの名無しさん
08/01/16 15:18:02
頭のおかしい人にマジレスしてもw

846:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/01/18 13:58:42
ぴぴるぴるぴるぴぴるぴ~

848:デフォルトの名無しさん
08/01/18 16:55:30
memsetだってwin32api使ってたらよく使うし
まぁ、ようは、どんな関数でも使う奴しだいだろ

849:デフォルトの名無しさん
08/01/18 22:05:01
ほとんど見かけないようなプラットフォーム向けにも移植性を確保しておきたいかどうかだな
zlibみたいなライブラリではそうする価値があるかもしれないが、俺が書くようなコードではどうでもいい…

850:デフォルトの名無しさん
08/01/18 22:27:36
>>849
スピード命のコードだと, 内周ループで数エントリの構造体を
memset するのってやたらコストがでかい。
実際には、サブルーチンコールのオーバーヘッドがでかいんだが…

去年 MPEG 関連の仕事を途中から引き継いだんだけど、とろくって
使い物にならなかった元のコードの memset を代入文に変えただけ
で実行時間 60% 程度まで短くなった。


851:デフォルトの名無しさん
08/01/18 22:35:04
それは使っているコンパイラが悪いような希ガス。

852:デフォルトの名無しさん
08/01/18 22:35:30
>>850
memset初期化を使うのは、システム起動時か、再起動時でしょ。
あとはオブジェクトが生成されたときとか。

頻繁に生成、破棄を繰り返すようなオブジェクトで、システム上重要な
パフォーマンスに影響をあたえるものにたいして、memset初期化をするかしないか
というのは「高速化」の話。memset初期化のよしあしの話ではない。

853:デフォルトの名無しさん
08/01/18 22:35:42
>>850
まぁそれはまた別の話かと

854:デフォルトの名無しさん
08/01/18 22:54:00
>>851
それは言えてるんだが、組み込み物ではコンパイラの選択肢は限られる。
ましてや、クライアント指定のコンパイラだ

>>852
> システム上重要なパフォーマンスに影響をあたえるもの
に、対して memset で初期化しておいて、直後にその大半を意味のある
値で再度上書きしてた。
> よしあしの話ではない。
かもしれないが、元のコードを書いた奴の神経をうたがったわな。


855:デフォルトの名無しさん
08/01/18 22:57:38
Win32APIみたいに設定項目が山のようにあり、
常に全部を使うわけでもなく、
0で埋められる項目の頻度が高ければ十分ありだろ。
C/C++以外では今時クラスインスタンス0フィルされる言語も珍しくもないし。
ケースを指定するでもなく一般論としてあーだこーだいってる奴はアフォ。

856:デフォルトの名無しさん
08/01/18 23:11:50
>>855
いいえ。

高が、struct someStruct foo = {0} で済むことのためにmemset()を使う必然性は殆どありませんね。
それがstruct someStruct * foo = malloc(sizeof(* foo))した領域でも同じこと。

857:デフォルトの名無しさん
08/01/18 23:29:25
memset使わないで

struct someStruct * foo
何か処理
foo = {0};って感じでまた初期化すればいいだけ

memset使うやつは馬鹿今の公開されている
まともなソースでmemset使ってるのコードは皆無だぞ?

858:デフォルトの名無しさん
08/01/18 23:31:27
>>857
>foo = {0};
それ無理じゃね

859:デフォルトの名無しさん
08/01/18 23:38:01
0fillがいかんからmemsetがいかんに話がずれてきてるな

860:デフォルトの名無しさん
08/01/18 23:38:59
パフォーマンスだけに限って言うと、memsetをインライン展開するコンパイラなら使う事もある。

861:デフォルトの名無しさん
08/01/18 23:50:15
>高が、struct someStruct foo = {0} で済むことのため

宣言と同時に初期化しない場合はどうするの?
というよりこれってコンパイラ依存なんじゃないの?

862:デフォルトの名無しさん
08/01/18 23:51:49
memsetは危険だから使うなって
manとかMSDNに記述あるんだな

863:デフォルトの名無しさん
08/01/18 23:54:46
>>862
具体的に書いてくれ。調べるの面倒

864:デフォルトの名無しさん
08/01/18 23:55:37
お前は何を言っているんだ

865:デフォルトの名無しさん
08/01/19 00:05:01
manページより:

>説明
>memset() は s で示されるメモリ領域の先頭から n バイトを c で埋める。
>返り値
>memset() は s へのポインタを返す。
>準拠
>SVr4, 4.3BSD, C89, C99, POSIX.1-2001.

俺の目がおかしいのかもしれないが危険性がどこにもみつけられない。
MSDNとか読むきしないから他のヤツよろしく。

866:デフォルトの名無しさん
08/01/19 00:09:13
>memset() は s で示されるメモリ領域の先頭から n バイトを c で埋める。
これは嘘だろw
nバイトをcで埋める可能性もあるが正解

867:デフォルトの名無しさん
08/01/19 00:10:50
>>866
日本語でおk

868:デフォルトの名無しさん
08/01/19 00:13:06


          冬 真 っ 盛 り 
 


869:デフォルトの名無しさん
08/01/19 00:15:43
埋めない可能性もあるのか?
まぁSEGVるかもしれんが

870:デフォルトの名無しさん
08/01/19 00:18:25
>>869
>まぁSEGVるかもしれんが

>>866がそんなことで「埋めない可能性がある」とかバカなこというわけないじゃないか。
>>866は、きっともっと違った根拠があっていってるのだよ。

871:デフォルトの名無しさん
08/01/19 00:19:58
ECCメモリを使っていない場合に起こるのかもしれないなw

872:デフォルトの名無しさん
08/01/19 00:27:17
>>871
ワロスwww
その「可能性」言い出したら、マニュアルなんて書けない気がするがwww

873:デフォルトの名無しさん
08/01/19 00:28:46
釣り堀だなw

874:デフォルトの名無しさん
08/01/19 00:35:45
>>867-873
こんなに釣れた


875:デフォルトの名無しさん
08/01/19 00:40:41
>>874
トイウコトニシタイノデスネ

876:デフォルトの名無しさん
08/01/19 12:18:16
struct someStruct foo = {0}
これはできるけど、動的確保した構造体だと無理じゃね?

877:デフォルトの名無しさん
08/01/19 12:21:34
>>876
C99は可能
お前あほ杉w

878:デフォルトの名無しさん
08/01/19 14:00:41
>>876
struct someStruct * foo = malloc(sizeof(* foo));
struct someStruct blank = {0};
* foo = blank;
よほど気の利かないコンパイラでもなければ、blankの実態は作られない。

879:デフォルトの名無しさん
08/01/19 14:06:25
なんと言う糞コードというか糞スレ・・・

880:デフォルトの名無しさん
08/01/19 14:14:39
>struct someStruct blank = {0};

こんなコンパイラがサポートしている「かもしれない」機能を
「使わないのはおかしい」と主張されてもな。

881:デフォルトの名無しさん
08/01/19 14:20:18
>コンパイラがサポートしている「かもしれない」機能
そうなの?

882:デフォルトの名無しさん
08/01/19 14:21:52
>>880
サポートしていないコンパイラをご存知ならご提示くださいませ。
以後規格外品として、広く存在を知らしめてまいりたいと思いますので。

883:デフォルトの名無しさん
08/01/19 14:22:15
>>881
そうだよ

884:デフォルトの名無しさん
08/01/19 14:23:16
>>882
むかし使ってた、ARMの純正コンパイラではサポートされてなかったな。

885:デフォルトの名無しさん
08/01/19 14:23:35
>>882
組み込み業界じゃザラにあるが…


886:デフォルトの名無しさん
08/01/19 14:24:52
もし論点があってそれを覚えているのなら3行にまとめてくれたまへ

887:デフォルトの名無しさん
08/01/19 14:26:15
つまり、昔のARM純正コンパイラは構造体の初期化ができないと?

888:デフォルトの名無しさん
08/01/19 14:26:47
>>884, 885
つか、>>882 は「Cが処理系に依存しない高級言語だ」って
思ってる可愛そうな奴なんだよ


889:デフォルトの名無しさん
08/01/19 14:28:01
>>887
いや、全部のメンバに代入すればOK

struct A {
 int a;
 int b;
};

OK:struct A a = {0, 0};
NG:struct A a = {0};

890:デフォルトの名無しさん
08/01/19 15:42:06
お前らまずは日本語を学べ
スレタイが読めるようになったらまた来い

891:デフォルトの名無しさん
08/01/19 19:37:52
ポインタは友達!

892:デフォルトの名無しさん
08/01/19 21:53:40
ポインタ「げ。また>>891だよ・・・マジウザイ・・・

893:デフォルトの名無しさん
08/01/20 01:38:56
ひでえw

894:デフォルトの名無しさん
08/01/20 20:51:06
昔記事を見て馬鹿にしてた教材が一番わかりやすかった

895:デフォルトの名無しさん
08/01/20 22:18:11
memsetを使う利点は使い方によっては構造体の初期化のソースを短く出来る事かな
巨大な行列を持つ構造体を初期化するとか普通に代入でまかなうとマジで馬鹿にならないくらいソースが膨らむから
ループで回して初期化するのも遅いしな

896:デフォルトの名無しさん
08/01/21 00:52:45
Cプログラマ必須テキストです!

URLリンク(mori.eco.to)

897:デフォルトの名無しさん
08/01/21 01:23:47
>>896
どうでもいいのだが・・・
>当然ですが、あらゆる標準関数の使用を認めません。
>
>・strlen() を自作せよ。
>・strcat() を自作せよ。

標準関数の使用を認めないくらいなら、strlenとかstrcatとかキケンな
関数じゃなくて、ふつうはもっと安全な代替関数を自作するでしょ。

898:デフォルトの名無しさん
08/01/21 02:16:15
>>896
>C++未経験ながら、1人でC++の10万行のソースコードの保守及び、3万行の開発を行った。
これ単にCとして使ったとかじゃ

899:デフォルトの名無しさん
08/01/21 02:38:15
いまどき行数で規模示すなんて

クラス数と各クラスのメソッド数で競ってくれ

っつーかすれ違いか


900:デフォルトの名無しさん
08/01/21 02:57:11
競うなよ。どっちも少なければ少ないほど良い。

901:デフォルトの名無しさん
08/01/21 05:07:32
さすがにクラスは適切な数ってのがあるだろうな。

902:デフォルトの名無しさん
08/01/21 11:28:41
>>896は宣伝でマルチしてるから無視すべし

903:デフォルトの名無しさん
08/01/21 17:02:57
PIC等の単純なCPUで機械語でもやってアドレッシングモードを習えば
ポインタは理解出来るんじゃね? 余計に混乱するかな?


904:デフォルトの名無しさん
08/01/21 18:50:37
PICとかアドレッシングモードとかわけわかめなんだけどどうすれば習えるの?

905:デフォルトの名無しさん
08/01/21 19:33:40
PICは余計なところが気になりすぎ、16ビット以上推奨だな。
AVRとかHC08とかARMがいいんじゃね?

あと、アセンブラのアドレスはせいぜい指してる先のバイト数
の情報くらいしか持ってないから、ポインタまでには、まだまだ
壁があるのでよろしく。

906:デフォルトの名無しさん
08/01/21 20:47:32
>>895
おれは構造体を定義したら、必ずその初期化関数を作るけどな。
だからソースはさほど膨らまない。

まあその関数の中でmemsetをやっている場合もあるんだが、
それでも素のmemsetは使わないな。

907:デフォルトの名無しさん
08/01/21 21:43:28
動的にその行列のサイズが変わる、その平均が100X100から1000X1000近くになって
最悪5千近くなる行列は動的に変わるんで代入じゃ無理だし、ループでまわして初期化するよりはmemset使った方が速度は確保できるし
何が糞なんだかなぁと思うわw
まあ、動的に確保して中身をゼロクリアしたいのならcalloc使えって話だけどなw
しかし、途中で初期化したくなったらmemsetかな?

908:デフォルトの名無しさん
08/01/21 22:09:00
>>905
> あと、アセンブラのアドレスはせいぜい指してる先のバイト数
> の情報くらいしか持ってないから
TRON chip を否定したな!WwwWW


909:デフォルトの名無しさん
08/01/21 22:47:17
>>908
> TRON chip を否定したな!WwwWW

は? TRON Chipのポインタも、持ってる情報はアドレスだけですが?

ポインタに情報を持たせるのはLisp処理系とかで、ワードアラインの都合で
使わない下2bitに型の情報を入れ込んだりとか、アドレスが24ビットだった
68000用のやっぱりLisp処理系で上8bitに型の情報を入れたり、とか。

ポインタが本格的に(?)型の情報を持ってるアーキテクチャったらIBMの
System/38→AS/400とかだろ。

910:デフォルトの名無しさん
08/01/21 23:12:54
>>909
ショボいCPU使ってプログラムを作ると自分でポインタを作って管理しなきゃいけなくなるよ。
それでポインタがマスター出来るだろうと思う。

911:デフォルトの名無しさん
08/01/22 01:11:14
>>907
そういう0クリアする必要があるときのmemsetには、誰も異論を唱えていない。

912:デフォルトの名無しさん
08/01/22 01:16:18
>>907
それやるとどこか1バイトだけ
初期化されず危険というコンパイラもある

913:デフォルトの名無しさん
08/01/22 01:24:46
>>912
「そうする機能を持つ」ということと、「バグでその機能が働かない」というのを
ごっちゃにすると、ワケワカンナクなるからやめようぜ。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch