多くのパソコンでマウスと対応している矢印のこと。 処理を行っているときは時計や砂時計になり、文字入力欄ではブロック体大文字の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つの戻り値(ライン位置)でしたが、マーカー検出を加えると戻り値(処理結果)が複数になる…
↓↓クリックして頂けると励みになります。ランキング参加中プログラミング ポインターの応用 C++のポインターは、メモリのアドレスを格納する変数であり、そのアドレスに格納されたデータを間接的に参照するために使用されます。 ポインターの応用は、さまざまな方法で行われますが、主な用途は以下のとおりです。動的メモリ割り当て: ポインターを使用して、実行時にメモリを動的に割り当てることができます。 動的メモリ割り当ては、必要なメモリサイズが実行時にわかる場合や、大きなメモリブロックが必要な場合に便利です。動的なデータ構造の作成: ポインターを使用して、動的なデータ構造(例えば、リスト、木構造、グラフなど…
↓↓クリックして頂けると励みになります。ランキング参加中プログラミング 構造体の中の構造体 C++における構造体(struct)の中に別の構造体を含めることができます。 これは、複雑なデータ構造を表現するために非常に便利です。構造体の中に構造体を含めることで、関連するデータをグループ化し、より構造化された形でプログラムを記述できます。 Visual Studio Codeで以下のcppファイルを作成して下さい。 新規作成 【Kouzoutai5.cpp】 #include <iostream> struct Point { float x; float y; }; struct Triangl…
↓↓クリックして頂けると励みになります。ランキング参加中プログラミング 構造体へのポインター C++における構造体へのポインター(Structure Pointer)は、構造体のメンバーにアクセスするためのポインターです。 構造体へのポインターを使用することで、メモリ効率が向上し、プログラムのパフォーマンスが向上する場合があります。 また、動的メモリ割り当てや関数への引数として構造体を渡す場合に便利です。ポインターを使用してメンバーにアクセスする際には、アロー演算子(->)が使用されます。 最後に、delete演算子を使用して動的に割り当てられたメモリを解放します。 Visual Studio…
前回は可変長配列クラスを作り、忘れていたvirtualをこっそり付け足しました。 次にするべきは勿論、文字列クラスの作成――ではあるのですが、ここで先に文字列の上限数を決めておきます。 適当に2^10にしておきます。 そして、これを最大数としてクラスを作ります。 出来ました。 ここで重要なのは、コンストラクタの処理内容。最初の部分に0を代入しています。 C++における文字列処理では、終端文字を使います。名の通り、文字列の終わりを指す文字です。本来ならchar型での表記'\0'と書くべきではあるのですが、私は面倒なのでintでの内部値の0を代入しています。 そして、最初に終端を置くということは、…
3D脱出ゲームの勉強と試行中。しまづさんのyoutubeシリーズ www.youtube.com を、金曜・土曜・日曜で # 08ズームパネルの作成 # 09ズームオブジェクトの作成 # 10ズームオブジェクトの回転 # 11アイテムの設置 # 12 パスワードギミックの作成 # 13パスワードクリアの実装 # 14カメラの回転 # 15カメラのズーム # 16設計(フローチャート)の作成 # 17モデルのインポート編 # 18モデルの設定 #19 アイテムの取得 メイン編 まで、一気に学習しました。その関係で、オブジェクトをドラッグで移動したり、所定の枠に嵌めたりする方法の…
Linux システムにおけるファイル管理は、その強力な機能性と柔軟性により、開発者やシステム管理者に広く利用されています。 多くのユーザーが頻繁に使用する rm コマンドは、ファイルを『削除する』と一般に認識されていますが、その背後にはより複雑なメカニズムが存在します。 本記事では、rm コマンドが実際に何を行っているのか、そしてLinuxファイルシステムの核心概念であるinodeとディレクトリエントリについて掘り下げていきます。 また、lnコマンドと比較することで、ファイルシステムの理解を一層深めます。 まとめ inode とディレクトリエントリを分けて考える rm コマンドの実態は unl…
始めに つい最近leetcodeを始めたものの、以下のような問題が出てきてListNodeってなんぞ?となって詰まったのでメモ。 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNode *next) : val(x), next(next) {} * …
<< 前回 次回 >>(最終回のため、なし) はじめに この記事でやること マインスイーパーに関する諸定義 説明に使う用語 細かい設定 マインスイーパーのZDDによる解法 ZDDによる爆弾配置の表現 新たな隣接マスの追加 ヒント数字を適用する演算 爆弾総数を適用する演算 爆弾総数のもう一つの使い方 危険度の計算 隣接マスの危険度 非隣接マスの危険度 旗を立てる 不要節点の削除 全体フローチャート 実験結果 勝数 解答時間 余談 研究テーマを決めたきっかけの話 参考文献 はじめに 今度こそ某有名パズルゲームを解く話です。 いよいよ明かされる某有名パズルゲームの正体とは… ズバリ、マインスイーパー…
↓↓クリックして頂けると励みになります。ランキング参加中プログラミング ポインタ配列を使用したプログラム C++のポインター配列(Pointer Array)は、ポインターを要素として持つ配列のことです。 各要素は、他の変数やオブジェクトのアドレスを指し示すポインターです。 ポインター配列は、多くの場面で便利に使用されます。 主な用途は、動的なメモリ割り当てや、複数のデータへのアクセスを効率的に行うことです。ポインター配列は、配列の各要素がポインターであるため、実際のデータがどこに格納されているかについて柔軟性があります。 これにより、動的なデータ構造の作成や、関数へのポインター配列の渡し方な…
今日は絵に関する反省会・・・ということで。 以前も言ったとおり、最近は出来上がった原稿をiPadで必ず確認するようにしていて、そこで、線の太さとか、描き込み量とか、全体的な見栄えをチェックするんだけど、総じて言えることとしては線が弱いなーと感じる。 大きな絵を描く時は、ガーッと大胆に描いたり、そういう絵に合ったブラシを使っているので、特に問題を感じることはないんだけど、小さいコマを描く時の絵が弱いなーと思う。 というのも、僕は小さいコマを描くときでも、大きい絵を描く時と同じ要領で、しげペン改のような繊細なブラシを使って、線に強弱をつけようとすることが多く、しかも拡大しながら描くので、引いて見た…
いや、自分のこの20年を考えてたら、ほんとに泣けてきちゃったので、沈んでました。 えっと気を取り直して。 IPですが、サブネットマスクなんておかしなものを誰が考えたんでしょう? A,B,C...というクラス分けがあるのはご存知だと思います。 IPアドレス、最上位ビットが0ならばまずClass Aです。 1なら、次のビットで0ならばB、立ってれば次のビットが0ならCです。あとはD,E...となるはずですけど、聞かないですね、特殊なものですかね。 Class Aはネットマスクは255.0.0、Bなら255.255.0.0、Cなら255.255.255.0これは最初から決まってます。従って、IPのパ…
ストックフォトをやられている方で、次のようなことでお悩みの方はいらっしゃるのではないでしょうか。 販売された画像がどのように使われているのか調べたい そのような方におすすめなのがGoogle画像検索です。 ということで今回は、販売された画像をGoogle画像検索で調べる手順を簡単に記事にしていきたいと思います。 Google画像検索の検索手順 販売履歴のある画像を右クリック 検索結果から販売画像を選ぶ 使われているサイトを確認する Google画像検索で販売画像を気軽に調べてみよう Google画像検索の検索手順 販売履歴のある画像を右クリック ストックフォトの管理画面やポートフォリオを、Go…
fgetwsを使ったwget_file_wtext_cstdioを作る。 その前に、fgetsを使ったget_file_text_cstdioがロケールの影響を受けるか確認する。 main.cを、 /* ヘッダファイルのインクルード */ #include <stdio.h> /* 標準入出力 */ #include <stdlib.h> /* 標準ユーティリティ */ #include <string.h> /* 文字列処理 */ #include <locale.h> /* ロケール */ #include <sys/stat.h> /* ファイル状態 */ #include <wchar…
OBS Studioに関する情報メモを書いてる記事。 ※「OBS Studioに関する個人的メモ」を移転しました。(現在は閲覧不可) 記事投稿日 2021年10月6日、最終投稿更新日 2024年03月14日 17時25分頃 かなり文字数が多いのでブラウザの検索機能をお使いください。 将来的に記事を分けて投稿したいと思っています。(現在作業中) 記事が見にくくて申し訳ありません。 ブラウザ検索ショートカット Windows : Ctrl + F macOS : Command + F この記事は下記環境を使用しています。 Linuxは使っていないのでメモしてません。 特定のデバイスがないと表示さ…
猫の種類と特徴を徹底解説。性格から飼い方まで、あなたにぴったりの猫を見つけるためのガイド。猫愛好家必見の情報満載で、理想の猫選びをサポートします。 【人気商品!】特大キャットハウス キャットハウス 特大 大型 一緒に入れる 180×90×180 ケージ 大型ケージ 飼育ケージ 猫 鳥 ホワイト シンプル ドア付き キャットハウス ベランダ価格: 108000 円楽天で詳細を見る 猫の種類と特徴を知って、自分に合った猫を見つけよう 猫という動物は、その愛らしい外見と独立した性格で、世界中で愛されています。しかし、猫にはさまざまな種類があり、それぞれに独自の特徴があります。この記事では、猫の種類と…