多くのパソコンでマウスと対応している矢印のこと。 処理を行っているときは時計や砂時計になり、文字入力欄ではブロック体大文字のIのような形になることが多い。
C言語プログラマーを悩ませるもの。 オブジェクトのアドレスを記憶する変数及びその型。 無効な位置を指すことも出来る(Dangling pointer、ぶら下がりポインタ)など、扱いに注意する必要がある。 Null(ヌル、ナル)ポインタはプログラム暴走のもと。
バグ
ポインタの考え方は、プログラミングを始める方にとって、イメージすることが難しいかもしれません。 しかし、ポインタを理解することができると他の言語もスムーズに習得することができます。 また、ポインタと一緒に使用する場合が多い配列についても説明していこうと思います。 それでは、C言語のポインタと配列について解説していきます。 ポインタとは 配列とは 2次元配列 ポインタと配列の関係 最後に (adsbygoogle = window.adsbygoogle || []).push({}); 1.ポインタとは ポインタとは、ある変数のメモリアドレスを指している変数のことを言います。 メモリアドレスと…
先日、山本フィフティーンファイブの「やってみせたらすごかった」という名言を紹介致しましたが、今回は「やってみたらすごかった」ことについて語ります。 みなさんはパソコンのポインタ(動く矢印みたいなの)の大きさの設定なんてのをいじったことがあるでしょうか。そんなんしたことないわ!という人がほとんどなのではないでしょうか。私も大正時代からパソコンを触っていますが、なんと今日初めてパソコンのポインタの大きさの設定をいじってみたのです。見てみると最小の大きさだったのですが、思い切って3倍ぐらいの設定にしました。こんなんデカすぎやろうと思うぐらいに大きくなったのですが、これがまぁめちょんこ見やすくなって作…
多次元配列をポインタで扱う方法です. 多次元配列は結局のところ一次元配列と同じようにメモリが確保されています. 例えば、char型の2次元配列とchar型へのポインタについて、次のことが言えます 2次元配列とポインタの関係 実用上は次のようにキャストしてあげるとベターです. #include<stdio.h> #define NUM_X (10) #define NUM_Y (20) void func(char* ptr); int main() { char map[NUM_Y][NUM_X]; for(int y=0;y<NUM_Y;y++){ for(int x=0;x<NUM_X;+…
C言語のポインタおよびポインタへのポインタの使い方をまとめてみた. 主にint型とint型へのポインタを例に説明する. アドレス演算子&と間接演算子* 単項演算子の&をアドレス演算子という. 二項演算子の&はビット演算子の1つであり、&&は論理演算子の1つである. 同様に単項演算子の*を間接演算子という. 二項演算子の*は算術演算子の1つである. 変数の宣言時に*をつけるとその型へのポインタであることを表す. 記号 意味 &a 変数aのアドレス a&b aとbの各ビットのANDをとる a==1 && b==0 左項と右項の論理積をとる 記号 意味 *a 変数aの間接参照 a*b aとbの掛け算…
一言でいうと配列名をポインタとしてアドレスを再代入することは出来ないというエラーである. 配列名とポインタの区別がつく場合 配列名とポインタの区別がつかない典型例 コールした関数内ではアドレスが交換できる(ただし、この例はスワップできない) コールした関数内では配列の要素数が取得できない 配列名とポインタの区別がつく場合 C言語では配列名はポインタと区別がつかないといわれるが、それは関数の実引数として配列名が渡されたとき呼び出された方の関数内での話であり、その配列を定義したブロック内ではコンパイラはちゃんと配列とポインタを区別している. そしてコンパイラが配列だと判断できる範囲では、配列の先頭…
はじめに Go言語の文法について調べていたら、ポインタというものが気になりました。 そこで今回の記事ではGo言語のポインタについて、 備忘録を兼ねて簡単にまとめていきたいと思います。 事前知識 事前知識として、変数、メモリ、アドレスの関係について以下にまとめていきたいと思います。 コンピュータにはメモリと呼ばれるデータを記憶する領域がある メモリは1バイト毎に番号が付けられ、区別されている メモリに付けられている番号がアドレスとなる 変数のデータはメモリ上に格納され、データが保持される 要はデータを保管するための箱がメモリであり、 箱を区別するための一意の番号がアドレス、 箱の中身が変数のデー…
これの続き https://qiita.com/Soluna_Eureka/items/8ff36a03c0bdf7d91de3 概要 前回に続き配列の勉強を始めた charの配列は扱わない オブジェクト指向なオレオレマトリックスを実装した 具体的にはオレオレ構造体に2次元配列をぶち込んだ メモリ(配置と総量)がガバ 1次元配列の方が良いんじゃ(感想に後述する) ついでに行列積を実装した 計算量がガバ($O(n)=3$) その他の要素はだいたい前回と同じだと思って良いよ 設計方針 前回の反省からオレオレオブジェクト専用オレオレ関数は引数をアドレス渡しで実装することにした 4通りのコーディング規…
概要 cのお勉強 c++ではない C11をターゲットにする C17ほどの新環境ではない 本格的に開始して3日目の記事です matlabで書けるやつをcに移行したい オブジェクト指向の設計がちょっとできるようになった 試しにcodegenを使ってみたけど納得できなかった… どうしても組み込み開発にオブジェクト指向を使ってみたい… 簡単なルーチンのコードならぶっちゃけ引き継ぎで確保している handle classがとても便利だよね,ぜひともあれをやりたい 結果,オレオレ自己参照構造体にオレオレ関数を設定する方針に至る MBP-2016-15(Intel Core i7), macOS Monte…
初めに Javaにおける参照型 それぞれの「渡し」の定義について Java の評価戦略 プリミティブ型の「値渡し」の例 参照型(配列)における「参照渡し」に見える「値渡し」 Java が参照渡しをサポートしていない事を示す例 Java には参照渡しがないことのまとめ 終わりに 初めに 参照渡しができるという記事や解説がよく見られますが、Java には「参照渡し」はありません。確かに配列やオブジェクトなどの参照型の変数を扱う場合、参照渡しの様に二つの変数間で同じインスタンスを共有している動きが見られます。いわゆる、別名参照問題です。 プリミティブ型変数には、プリミティブ型の値そのものが格納され、…
マーカーセンサー 前回の記事から1か月以上経過してしまいました。この夏の暑さに参って開発から遠ざかっていました。気力を振り絞って開発を再開します。TSL1401のプログラムを改良し、現在コースライン位置のみ検出しているのに加えて、コースライン脇にあるマーカーの検出もできるように改良を試みます。これにより、バンパー下に設置したマーカー読み取りセンサよりも、より早い時点でマーカー検出することができ、コース端コーナー進入時のステアリングと速度の制御を改善したいと思ってます。 先の記事に掲載した関数は、2つの引数に1つの戻り値(ライン位置)でしたが、マーカー検出を加えると戻り値(処理結果)が複数になる…
今日は主に YJIT の Class#superclass の最適化や reline と irb の最適化などがありました。 [480287d140] Peter Zhu 2024-04-23 19:34:03 UTC 共有ライブラリで GC の実装を上書きする機構のリファクタリング。なんか load_external_gc_func() というマクロを定義して文字列リテラルや関数名に特定の suffix を追加して展開しているようにしていますが、この時点では呼んだあとすぐに #undef しているから展開して書いても良さそうだけど後で分岐を追加する予定なのかな。 [afc7799c32] K…
たまにはお仕事の話でも。 私は普段、持ち運びに便利なMacBookを多用しています。で、ですよ。たまーに必要になるんですよねスクショ画像。 スマホとかでは慣れているんですが、たまにの機能だとすっかり忘れていて検索…ってことも。 というわけで今回はMacBookのスクショができるショートカットキー とっても簡単便利なので、ぜひいっぱい活用してみてくださいね♪ MacBookのスクショができるショートカットキー 画面全体のスクリーンショットを撮る方法 画面の一部のスクリーンショットを撮る方法 まとめ MacBookのスクショができるショートカットキー 画面全体のスクリーンショットを撮る方法 「sh…
github.com bpf_xdp_adjust_head()はパケットの先頭ポインタをずらすことができる。 つまり、パケット長が長くしたり、パケット長を短くするときに使える。(例えば、encap処理やdecap処理)bpf_xdp_adjust_headのあるパラメータに正の値を与えると、パケット長が短くなり、負の値を与えるとパケット長が長くなる。 イメージとしてはこんな感じ。 098 | 099 | 100 | 101 | ... | 500 ^ ^ - <--- | ---> + - <--- | ---> + (start-pointer) (end-pointer) パケットの末尾…
今日は主に標準添付ライブラリ reline のバージョン更新やビルドプロセスの変更がありました。 [dae5900305] Kevin Newton 2024-04-23 12:44:57 UTC prism の更新。 [5fd08b506c] Sanjay Karukamanna 2024-01-04 00:52:10 UTC prism の更新。 [87b829aa94] Cory Hutchison 2024-01-04 03:08:59 UTC prism の更新。 [f7d1699f67] Philip Mueller 2024-02-21 17:30:22 UTC prism の更…
minimizedする JSONでは改行不要、スペース不要の為、その辺りを削ると結構サイズ減ります。これを圧縮と呼ぶ場合あります。 ファイルをzip圧縮する 一応ベタな方法なので、まあまあそのまま。 カラム指向の表現形式という事にして、重複記述を削るような事する SDTMは正規化という概念に反逆を起こしていて無駄にデータが大きい訳ですが、多分カラム指向とかぶっこめば、可読性とかだいぶ気にしなくなり、削っていけるのでは。カラム指向のDBは、内部的にはこんな感じでデータを持っています。 ID ID_AETERM 1 @1 2 @2 3 @3 4 @4 5 @5 ID_AETERM AETERM @…
初投稿です。 「学んだことはブログなどに書き込んでアウトプットすると良い」 らしいので試してみます。 今回は、C言語のポインタについて学んだことをメモ兼アウトプットします。 学ぶのに使った本は「C言語ポインタ完全制覇(ISBN978-4-7741-9381-6)」 という本です。 新・標準プログラマーズライブラリ C言語 ポインタ完全制覇 作者:前橋 和弥 技術評論社 Amazon 今回は第一章の内容をメモしていきます。 ポインタ型とは 例えば「int型」や「double型」が存在するが、それらから派生して作り出される型。 ポインタ型にさせるためには、型に「*」を付け加える。 そうすることで「…
今日は主に YJIT の不具合修正、正規表現の不具合修正、parse.y の CRuby 依存を減らす変更などがありました。また今日は脆弱性修正を含む CRuby の安定版の各バージョンのリリースがありました。利用しているバージョンの更新をお願いします。https://www.ruby-lang.org/en/news/ [aa5b53d232] Kevin Newton 2024-04-22 14:07:38 UTC prism の更新。 [1bb7638e7a] Alan Wu 2024-04-22 15:16:46 UTC YJIT でコード生成時に最適化でコードを消し過ぎてコード書き替…
itmediaの「main()関数の前には何があるのか」の連載を読んでわからなかったことや、調べたことをメモする (作者サポートページ) 第三回は"試行錯誤のデバッグで探る、printf()内のポインタ経由での関数呼び出しが行き着く先とは" break mainでrunしたあと、breakしてるのが↓の行なのよくわからんな breakが貼られる箇所ってどういう規則になってるんだろう? https://image.itmedia.co.jp/ait/articles/1703/01/r20_Hello03-01.PNG gdbについて調べると使い方ばかり出てきて、原理がわからんな break f…
因果推論: 基礎から機械学習・時系列解析・因果探索を用いた意思決定のアプローチ作者:金本 拓オーム社Amazon著者の金本さんからご指名でご恵贈いただいたのが、こちらの『因果推論 ―基礎から機械学習・時系列解析・因果探索を用いた意思決定のアプローチ―』です。正直に白状しますと、因果推論とタイトルにつく技術書はここ数年でゴマンと出版されており、本書も紙冊子で頂戴したものの僕はあまり期待せずにページをめくり始めたのでした(ごめんなさい)。 ところが、ほんの数ページめくっただけでその内容に僕は仰天しました。グラフィカルで実務家にとっての分かりやすさを重視した因果推論の解説と実践にとどまらず、現代的な…
届いた不審メール まずは削除させる。開かないことを社員教育として徹底周知する。 とけ アジャイル開発の手法の一つであるスクラムにおいて,決められた期間におけるスクラムチームの生産量を相対的に表現するとき,尺度として用いるものはどれか。 とけ 問題は発生していないが,プログラムの仕様書と現状のソースコードとの不整合を解消するために,リバースエンジニアリングの手法を使って仕様書を作成し直す。これはソフトウェア保守のどの分類に該当するか。 マクシミン原理 得られる最小の値が最大 TLSアクセラレータ TLSで暗号化を行うための機器。 認知的ウォークスルー法 IMAPS 本文まで暗号化するのはIMAP…
新しいブログタイトルを決めるため、案を出す。 以下、案 ブランコで乾かされた刺身 歯形つきキャタピラー 立方体おやじ 忍び寄るバカ 人混みが怖い ミニカーに水をやるなど 幅寄せ 老人特有のくしゃみ 笑顔で石を集める スプラッタ目薬マウンテン ジト目のニュートン 光るゴミ箱 裸足で公共交通機関を使う瞬間 Cドライブ・はち切れんばかり・カルキン サンバイザーが似合う 萌えよノナゴン 泥で出来た看板 徒歩で月に向かう つまらない話 トンネル効果の証明 バンビまる 肉眼キング 逆三角形 段ボール指輪 超天才マジシャン とっておきの合鍵 イカ墨マザーグース 跳び箱本当に嫌い 調理実習マスター おもむろに…
今日は主に irb のリファクタリングなどがありました。 [f16c6ac4fd] Stan Lo 2024-04-20 18:55:51 UTC irb の組み込みコマンドの実装で IRB::ExtendCommandBundle というモジュールを IRB::Command に改名してクラスメソッド IRB::ExtendCommandBundle.def_extend_command の定義のみ ExtendCommandBundle モジュールに残しています。モジュール名と内容を一致させるためのリファクタリングかと思われます。 https://github.com/ruby/irb/p…
連続でDNS関係の話ですが、最近少しDNSサーバも触り始めて、いろいろ設定値があるんだなぁと感心したのでここにまとめていきます。 とりあえず有名どころを押さえる Aレコード AAAAレコード MXレコード TXTレコード NSレコード SOAレコード PTRレコード 感想 とりあえず有名どころを押さえる CDNを提供しているcloudflareの記事があったのでそれを読むことにします。 www.cloudflare.com コピペ記事になるのも良くないので、自分なりに覚えやすい語呂合わせのようなものを作っていこうかなと思います。 Aレコード いわゆるIPアドレス(IPv4)が引けてくるもので、…
関数ポインタとは 関数を指すためのポインタ(メモリアドレス)のことで、 C、C++、C#などでは一般的に使用されます。 以下は、プログラム初心者に向きの簡単なC++での関数ポインタの利用例です。 一般的なやつ #include <stdio.h> // 戻り値なし、引数 int の関数ポインタの定義 typedef void (*FuncPointer)(int); void FuncA(int x) { std::cout << "Function A: " << x << std::endl; } void FuncB(int x) { std::cout << "Function B: …
今日は主にテストの一時ディレクトリにファイルが残ってるのを検出する変更などがありました。 [7951b349ab] Nobuyoshi Nakada 2024-04-19 07:33:16 UTC macOS でのコンパイル時にリンカのいくつかの特定の警告が出るのを configure で検出したら warnflags に -Wl,-w を追加するようにしています。 [e133d0c7a1] Artur 2024-03-06 16:44:51 UTC 標準添付ライブラリ time の Time.stptime の rdoc 用コメントに不正なフォーマットの時の例外について追記しています。 [4…