【悲報】 ワイ、C言語のポインタで挫折する……

    5bfd7263-s.jpg




    1 :名無しさん 2020/04/19(日) 11:02:29 ID:kOCOrz4U0.net

    どうしたらええんや……


    9 :名無しさん 2020/04/19(日) 11:04:29 ID:RgQMgtIcd.net

    わかるわ
    ワイもポインタで???なったわ


    8 :名無しさん 2020/04/19(日) 11:04:07 ID:P3rMkueo0.net

    使わないと覚えんで


    3 :名無しさん 2020/04/19(日) 11:02:45 ID:wGRXputVa.net

    才能ないから諦めろ


    6 :名無しさん 2020/04/19(日) 11:03:20 ID:kOCOrz4U0.net

    >>3
    なんかええ本ないんか…


    17 :名無しさん 2020/04/19(日) 11:05:33 ID:8IBbhHiy0.net

    C言語ポインタ完全制覇が面白くておすすめ


    4 :名無しさん 2020/04/19(日) 11:03:07 ID:REoC1F6S0.net

    ポインタの本質は返却値を複数もてることやぞ


    10 :名無しさん 2020/04/19(日) 11:04:31 ID:ObHDcJS3a.net

    >>4
    Listで返せばええだけやん


    170 :名無しさん 2020/04/19(日) 11:32:05 ID:07E7u5an0.net

    >>10
    型違いどうすんねん


    40 :名無しさん 2020/04/19(日) 11:08:59 ID:9mTZTN9u0.net

    >>4
    クラスでええやん


    49 :名無しさん 2020/04/19(日) 11:10:02 ID:IUdJQtJd0.net

    >>4
    構造体でいいよね


    11 :名無しさん 2020/04/19(日) 11:04:38 ID:lSHxv9FS0.net

    組み込み機器でやるとポインタと構造体が一気に覚えられるぞ
    ルネサスとかでマイコンセミナーやっとるで


    298 :名無しさん 2020/04/19(日) 11:49:45.86 ID:YhyHTWyLa.net

    >>11
    Python使いたいけどVMをマシンに組み込まなあかんのがな


    302 :名無しさん 2020/04/19(日) 11:50:22.15 ID:xmI3RzZe0.net

    >>298
    Pythonにvmなんて必要ないけど


    333 :名無しさん 2020/04/19(日) 11:54:42 ID:YhyHTWyLa.net

    >>302
    MicroPythonは必要なんや、組み込み系の話やで


    340 :名無しさん 2020/04/19(日) 11:55:25 ID:xmI3RzZe0.net

    >>333
    なるほど
    初めて聞いたわ
    Micro Python


    12 :名無しさん 2020/04/19(日) 11:04:53 ID:6GuLwvhV0.net

    ハードウェア寄りの考え方慣れてると理解しやすいけど言語は書いて遊ぶのが一番やと思うで


    13 :名無しさん 2020/04/19(日) 11:04:58 ID:ObHDcJS3a.net

    ポインタとか古臭い概念やで


    15 :名無しさん 2020/04/19(日) 11:05:19 ID:ObHDcJS3a.net

    そもそもC自体オワコン(笑)


    14 :名無しさん 2020/04/19(日) 11:05:00 ID:num2cHcj0.net

    今どきCやるくらいならRustでいいよね


    7 :名無しさん 2020/04/19(日) 11:03:59 ID:kOCOrz4U0.net

    他の言語にするのもなあ


    23 :名無しさん 2020/04/19(日) 11:06:46 ID:aBViA0Yc0.net

    Cはオワコン←せやな
    Cやる意味はない←せやろか?


    25 :名無しさん 2020/04/19(日) 11:07:09 ID:vEK46UO/M.net

    >>23
    arduinoで使っとるで


    19 :名無しさん 2020/04/19(日) 11:05:44 ID:ObHDcJS3a.net

    ガーコレあるJavaやっとけ^^


    26 :名無しさん 2020/04/19(日) 11:07:10 ID:ax0GlbtUa.net

    そもそもなんでメモリや二進数理解してない人間にcやらせるんやろ


    20 :名無しさん 2020/04/19(日) 11:06:01 ID:30MjoPHJ0.net

    int* i
    *i

    *の意味が違う無能


    101 :名無しさん 2020/04/19(日) 11:22:55 ID:fyl57Iz30.net

    >>20
    無印にアドレス挿入とかややこしすぎるねんな


    27 :名無しさん 2020/04/19(日) 11:07:15 ID:Z/qkz46r0.net

    アドレス渡してんのか値渡してんのか書き方がどっちがどっちがややこしいとは思う
    でも理解できないはない


    30 :名無しさん 2020/04/19(日) 11:07:56 ID:ObHDcJS3a.net

    >>27
    参照変数と変数の違いもわかってなさそう(笑)


    31 :名無しさん 2020/04/19(日) 11:07:57 ID:ZYjPvDAlM.net

    ワイも勉強しようと思ったけどポインタで分からなくなったわ


    35 :名無しさん 2020/04/19(日) 11:08:30 ID:ObHDcJS3a.net

    >>31
    メモリを意識できるかどうかがアマとプロの違いやで


    28 :名無しさん 2020/04/19(日) 11:07:21 ID:L7rmxma70.net

    騙されたと思ってメモリ図書いてみ?


    32 :名無しさん 2020/04/19(日) 11:08:14 ID:dhGnoSy60.net

    組み込みやるならC必須なんだが?
    どうせ業務系かweb系しかやってないんだろうが


    34 :名無しさん 2020/04/19(日) 11:08:28 ID:UQrjFQg50.net

    >>32
    やめたれw


    36 :名無しさん 2020/04/19(日) 11:08:34 ID:mujFG0/ma.net

    ポインタを使わなければならないのは
    c言語の関数定義の時、仮引数部分の型を可変にする
    手段がないから。
    すなわちJavaとかのオーバーロードみたいな技術が
    ないので
    関数にはアドレスで引数を渡さなければならない
    アドレス型は数値でも文字列でも配列でも浮動小数点数でも
    確保しなければならないメモリサイズが全部同じだから
    どんな方の引数でも受け取れる関数が定義できて便利
    だからC系では関数定義の時ポインタ型で受け取るように
    しておき、
    関数実行時にアドレスを渡すようにしている


    53 :名無しさん 2020/04/19(日) 11:10:36.96 ID:ObHDcJS3a.net

    >>36
    実引数をListやMapにすりゃいけるやろ(笑)


    56 :名無しさん 2020/04/19(日) 11:11:18.33 ID:REoC1F6S0.net

    >>53
    つまりどういうことだってばよ?


    60 :名無しさん 2020/04/19(日) 11:12:22 ID:ObHDcJS3a.net

    >>56
    サブ関数の仮引数を動的に変化させるためにメインからサブ関数実行時の実引数を動的にすればええんやで


    71 :名無しさん 2020/04/19(日) 11:14:32 ID:f3PalpRS0.net

    >>60
    それって結局アドレス渡しとるってことやろ?
    ポインタと本質は同じなんやないんか


    79 :名無しさん 2020/04/19(日) 11:16:29 ID:ObHDcJS3a.net

    >>71
    参照変数として渡せるから確かに振る舞いはポインタとほぼ同じでもあくまで変数やから扱いやすい


    37 :名無しさん 2020/04/19(日) 11:08:41 ID:RQTiuvSw0.net

    ポインタのポインタのポインタやぞ


    38 :名無しさん 2020/04/19(日) 11:08:43 ID:f3PalpRS0.net

    メモリの場所指してる変数ってだけやで
    *をつけるとその場所の値が取れる


    43 :名無しさん 2020/04/19(日) 11:09:15 ID:LSj86lbj0.net

    変数使ってうまく動かんかったら
    頭に&つける
    未だにこれ


    48 :名無しさん 2020/04/19(日) 11:09:51 ID:RQTiuvSw0.net

    >>43
    ヒェ…


    44 :名無しさん 2020/04/19(日) 11:09:25 ID:L7rmxma70.net

    ポインタ変数の最初にpつけるようにすると良いと思うよ


    46 :名無しさん 2020/04/19(日) 11:09:50 ID:VuQ7z7Aid.net

    でも言語の総数で言えばポインタ使わない言語>>ポインタも使える言語やしな

    ポインタ使えずとも使わない言語をメインにすりゃええで


    58 :名無しさん 2020/04/19(日) 11:11:34 ID:8IBbhHiy0.net

    >>46
    pythonだって明示的にポインタ使ってないけど変数は参照渡しだったりでむしろ分かりにくくないか


    47 :名無しさん 2020/04/19(日) 11:09:50 ID:kuDaMMBE0.net

    参考書の勉強だけだとポインタは分けわからんと思う
    実際に使ってみたら便利さに気が付く


    51 :名無しさん 2020/04/19(日) 11:10:16.29 ID:rS/UXkF3M.net

    >>47
    お前さん何者や?


    55 :名無しさん 2020/04/19(日) 11:11:15.33 ID:kuDaMMBE0.net

    >>51
    コンシューマゲームのプログラマーや


    50 :名無しさん 2020/04/19(日) 11:10:11.76 ID:00sg1LYD0.net

    Cの絵本でダメなら諦めろ


    52 :名無しさん 2020/04/19(日) 11:10:24.33 ID:SY+Hbmky0.net

    Pythonでええやん


    54 :名無しさん 2020/04/19(日) 11:10:50.01 ID:iQmMVoeK0.net

    ゲームでもなければCなんてゴミカス言語や


    57 :名無しさん 2020/04/19(日) 11:11:24 ID:sUtw/tpy0.net

    ワイ将、うっかり電子工学に進んでしまうも全く理解できず無事死亡
    なおプログラム関係の履修は全てカンニングで乗り切った模様


    59 :名無しさん 2020/04/19(日) 11:12:16 ID:o94RbpUda.net

    たぶんポインタ理解できないのは根本的にハードの理解薄いからやと思う


    68 :名無しさん 2020/04/19(日) 11:14:12 ID:ZVwQRwje0.net

    >>59
    ハードの理解いらなくない?
    ポインタが保持してるメモリ上のアドレスにアクセスしてそこのデータをポインタの型で解釈するだけ


    78 :名無しさん 2020/04/19(日) 11:16:13 ID:F9gpR+Hna.net

    >>68
    理解出来ない人間にはそれが具体的に想像つかんのや
    vbのsetやjavaで勝手にやってくれてるのと同じなんやけど


    62 :名無しさん 2020/04/19(日) 11:13:00 ID:00sg1LYD0.net

    Pythonも込み入ったことやるなら
    DLLかso作らんとならんからな


    65 :名無しさん 2020/04/19(日) 11:13:31 ID:MzryRuHmM.net

    ワイもGolangでポインタ触れてるけどいまいちピンときてない
    なんで構造体のときポインタつかうんや


    66 :名無しさん 2020/04/19(日) 11:13:51 ID:74/TCx4R0.net

    値で指定をすると、ちっさいプログラムだとまあ問題ないけど
    複雑になればなるほど、その値が格納されてるメモリの位置に他のものが入ったり数値が予想してない値に変わる可能性が出てくる
    なのでそれを防ぐために、メモリの場所そのものを指定して値が変わってても欲しい変数返してくれる
    大学中退して10年やがこの記憶で合ってるか


    91 :名無しさん 2020/04/19(日) 11:18:57 ID:xmI3RzZe0.net

    >>66
    今はRAMがでかいからそんなこと気にしなくてもいい


    142 :名無しさん 2020/04/19(日) 11:29:19.12 ID:6GuLwvhV0.net

    >>66
    デカいデータ(例えば1万個の数列)なんて扱う時はポインタ渡しの方が楽というか現実的やね


    67 :名無しさん 2020/04/19(日) 11:14:07 ID:IXDvx59H0.net

    ポインタってただのアドレスじゃないの?
    難しいことないやろ


    69 :名無しさん 2020/04/19(日) 11:14:19 ID:g1qCPImd0.net

    参照渡しとの明確な違いがわからん


    70 :名無しさん 2020/04/19(日) 11:14:24 ID:JdE7bXjl0.net

    void main (argc , *argv[])

    ワイはCを諦めた


    72 :名無しさん 2020/04/19(日) 11:14:58 ID:00sg1LYD0.net

    ヒープとスタック理解してからの方がええ

    とにかくCの絵本読め
    そのあとはポインタ完全制覇読め


    73 :名無しさん 2020/04/19(日) 11:15:09.87 ID:wLKTxSfz0.net

    ただの指差しやぞ


    75 :名無しさん 2020/04/19(日) 11:15:41 ID:9OBgdyAN0.net

    cでもc++でも、ポインタをいかに隠しながら上手く動かすかがコツなんやないかな
    ポインタを生で扱ってたら書いてる途中で頭おかしなるわ


    80 :名無しさん 2020/04/19(日) 11:16:33 ID:00sg1LYD0.net

    >>75
    これ言う奴がだいたいリークさせるんやで…


    76 :名無しさん 2020/04/19(日) 11:16:06 ID:pJoIfvW00.net

    バグの8割くらいはポインタ関連やったわ


    86 :名無しさん 2020/04/19(日) 11:18:13 ID:wLKTxSfz0.net

    >>76
    ぐうわかる


    84 :名無しさん 2020/04/19(日) 11:17:46 ID:Tc4Ft9NQr.net

    >>76
    フラグのバグにフラグで対応した結果wwww


    81 :名無しさん 2020/04/19(日) 11:16:50 ID:hfEySjwf0.net

    1ビットが0か1かの二通りを表せる情報量。
    1バイトは0〜255までの256通り(2の8乗)を表せる情報量で8ビットに等しい。
    1バイトを複数並べたのがメモリーで、各バイトの位置がアドレス。
    アドレスに型情報を加えて、先頭アドレスを起点として配列のようにアクセス可能にしたものがポインタ。
    しかし、配列は実体を要求するが、ポインタは実体を要求しない。ヌルポインタは、何も指し示さないポインタ。

    らしいわ


    82 :名無しさん 2020/04/19(日) 11:17:17 ID:REoC1F6S0.net

    はえ〜勉強なるわ


    85 :名無しさん 2020/04/19(日) 11:18:06 ID:WVc/00Xx0.net

    ワイ組み込みマン
    ポインタでマッピングしたLSIにアクセスしてにっこり


    83 :名無しさん 2020/04/19(日) 11:17:36 ID:UDhuH0gHa.net

    ポインタ楽しすぎる


    88 :名無しさん 2020/04/19(日) 11:18:48 ID:YDoqkdPo0.net

    アセンブラやってたらすっと頭に入ってくるんだけどな


    89 :名無しさん 2020/04/19(日) 11:18:50 ID:XebIPx57d.net

    メモリセーフなRustってやっぱ神やん


    93 :名無しさん 2020/04/19(日) 11:19:41 ID:hfEySjwf0.net

    >>89
    当たり前だよね


    95 :名無しさん 2020/04/19(日) 11:20:34 ID:MFnk9ukp0.net

    そんなに使わないから覚えなくてもいいぞ


    97 :名無しさん 2020/04/19(日) 11:21:04 ID:JdE7bXjl0.net

    ポインタを覚えたと思ったら今度はスマートポインタとかいうのが出てきてワイは発狂した


    103 :名無しさん 2020/04/19(日) 11:23:48 ID:iQmMVoeK0.net

    >>97
    実質ガーベジコレクターみたいなもんや


    98 :名無しさん 2020/04/19(日) 11:21:51 ID:L7rmxma70.net

    多分宣言なんやろな
    char Num;
    char *pNum1 = &Num;
    char* pNum2 = &Num;
    自然なのは下の方やけど、上が行けるから混乱する


    104 :名無しさん 2020/04/19(日) 11:23:53 ID:fyl57Iz30.net

    マジクソややこしい表記だから忘れるたびに復習するで
    5回あたりから間違えなくなった


    112 :名無しさん 2020/04/19(日) 11:25:19 ID:Rln/CO3ed.net

    >>104
    ワイC言語屋、そんなに複雑か疑問
    ちょっと違うけど明示的に参照を書いてる位に思えばそんなにややこしくも無いだろ


    102 :名無しさん 2020/04/19(日) 11:23:25 ID:M1Ybvks40.net

    学生時代にCをちょろっとやったが
    このjava系、C#系が全盛の世の中じゃ糞の役にもたたんかったな


    105 :名無しさん 2020/04/19(日) 11:24:07 ID:C8Q5GvyLa.net

    CやるくらいならGo言語やっとけ


    107 :名無しさん 2020/04/19(日) 11:24:53 ID:pJoIfvW00.net

    関数ポインタ、お前何者やねん
    アホか


    119 :名無しさん 2020/04/19(日) 11:25:56 ID:Rln/CO3ed.net

    >>107
    ただのインタフェースと思え


    127 :名無しさん 2020/04/19(日) 11:26:53.25 ID:xmI3RzZe0.net

    >>107
    インスタンスとしてみるとむしろその方が自然だと思うんだけど


    132 :名無しさん 2020/04/19(日) 11:28:00.72 ID:Tc4Ft9NQr.net

    >>107
    偉い人「何かあったらここに連絡してくれ」ってポインタを渡すんや


    108 :名無しさん 2020/04/19(日) 11:24:54 ID:pVD61gfca.net

    goとrust、どっちやったらええん?


    130 :名無しさん 2020/04/19(日) 11:27:35.59 ID:nvIYE0n20.net

    >>108
    どっちもやるんやで


    109 :名無しさん 2020/04/19(日) 11:24:57 ID:ZYjPvDAlM.net

    Cシャープやろうと思ったらCマスターしてからじゃないと難しいとかある?


    118 :名無しさん 2020/04/19(日) 11:25:49 ID:hfEySjwf0.net

    >>109
    別物やで


    128 :名無しさん 2020/04/19(日) 11:27:22.68 ID:ZYjPvDAlM.net

    >>113
    >>118
    サンガツ
    C以外をやってみるわ


    113 :名無しさん 2020/04/19(日) 11:25:25 ID:Tc4Ft9NQr.net

    >>109
    全然違うからやりたい方やるんやで


    110 :名無しさん 2020/04/19(日) 11:25:00 ID:AN+YyYGea.net

    Cとか組み込みみたいなのやらん限り覚える必要ないやろ


    111 :名無しさん 2020/04/19(日) 11:25:01 ID:EZC/nhCq0.net

    C言語はクソだよ
    グローバル変数とかカプセル化と真逆の思想すぎる


    120 :名無しさん 2020/04/19(日) 11:25:57 ID:UmPPvLLWd.net

    >>111
    staticおじさん召喚の儀やめろ


    134 :名無しさん 2020/04/19(日) 11:28:21.81 ID:8IBbhHiy0.net

    >>120
    危うく召喚されそうになったわ


    123 :名無しさん 2020/04/19(日) 11:26:33 ID:ZVwQRwje0.net

    >>111
    そんなもんない時代のもんやろ


    140 :名無しさん 2020/04/19(日) 11:28:59.37 ID:Bts76i5t0.net

    >>111
    そもそもUNIX作るために作られた言語だからねぇ
    まあstaticにして関数でラップしてやればカプセル化できるし


    155 :名無しさん 2020/04/19(日) 11:30:36.00 ID:Rln/CO3ed.net

    >>140
    同義かも知れんがstaticにするというよりソースファイル単位に閉じるのがC言語のオブジェクト指向の書き方のイメージ
    ヘッダにはパプリックだけ定義して公開したくないものはソースに書く


    183 :名無しさん 2020/04/19(日) 11:33:15 ID:Bts76i5t0.net

    >>155
    書いてからその方が良いと思ったわ
    単純にstaticで持つだけでは一つしか状態持てんからな


    115 :名無しさん 2020/04/19(日) 11:25:37 ID:ZVwQRwje0.net

    関数ポインタの表記よりマシやろ
    メンバ関数ポインタはどうかくかよく忘れる


    117 :名無しさん 2020/04/19(日) 11:25:39 ID:0pxJMguQa.net

    よくわからんのやけどこのC言語ってのやれば、未経験でもITエンジニアになれるんか?
    それだけ教えろ


    122 :名無しさん 2020/04/19(日) 11:26:15 ID:iQmMVoeK0.net

    >>117
    無理


    124 :名無しさん 2020/04/19(日) 11:26:35 ID:9uuJXbzC0.net

    >>117
    java にしとけ


    125 :名無しさん 2020/04/19(日) 11:26:36 ID:I2f5UC950.net

    そりゃ作りたいものがないのにプログラムだけ勉強してればそうなるわ


    131 :名無しさん 2020/04/19(日) 11:27:48.14 ID:JW2/v/3b0.net

    ポインタ以上に便利な関数引数とクラス・構造体メンバは存在しとらんからないまだに


    133 :名無しさん 2020/04/19(日) 11:28:05.53 ID:DE+53VJ4p.net

    ポインタの用途で一番多いのは動的配列やな
    その次が引数


    145 :名無しさん 2020/04/19(日) 11:29:37.01 ID:8g9PbvKu0.net

    概念はわかるけど
    記述方法は使ってないと忘れるから嫌い

    会社入ってからC使ったことないけど


    146 :名無しさん 2020/04/19(日) 11:29:37.42 ID:fyl57Iz30.net

    まー配列を関数に渡したいってのが一番だなそれで納得できた


    149 :名無しさん 2020/04/19(日) 11:29:54.95 ID:MeS/O0m70.net

    VBAの値渡し、参照渡し分かれば分かるだろ


    157 :名無しさん 2020/04/19(日) 11:30:42.64 ID:DJcAAf6Ld.net

    VBAならちょっとできるけどポインタなんの事かわからん


    153 :名無しさん 2020/04/19(日) 11:30:16.19 ID:fyl57Iz30.net

    パソコンでわからないところは仕様の問題であることが多い 根深いところまでしがみつくべき


    160 :名無しさん 2020/04/19(日) 11:30:50.17 ID:34N6h6eq0.net

    本で読んで勉強したけど一瞬で忘れた


    171 :名無しさん 2020/04/19(日) 11:32:08 ID:Q/oQoByt0.net

    プログラマ言うても全くポインタ意識しなくてもいい業界もあるからな
    転職先がそれやったから楽やわ


    39 :名無しさん 2020/04/19(日) 11:08:51 ID:gpFFEXR40.net

    マウスと一緒に動く奴やろ
    ワイでもわかるわ



    この記事へのコメント