C++のメモリ管理とオブジェクト指向機能の詳細解説
C++メモリ領域の分割
C++プログラム実行時のメモリは4つの領域に分割されます:
コード領域: 関数のバイナリコードを格納
グローバル領域: グローバル変数、静的変数、定数を格納
スタック領域: 関数パラメータ、ローカル変数を格納(コンパイラ自動管理)
ヒープ領域: プログラマが手動でメモリを割り当て/解放
プログラム実行前のメモリ状態
コンパイル後、実行前 ...
6月15日 20:12 投稿
ポインタと参照の基礎
ポインタの基本演算子
C++におけるポインタには2つの主要な演算子があります:
*(間接参照演算子):ポインタに適用すると、そのポインタが指すアドレスに格納されている値を取得します。
&(アドレス演算子):変数に適用すると、その変数のメモリアドレスを取得します。
ポインタ自体も変数であるため、ポインタのアドレスを取得することも可能です。このアドレス ...
6月9日 00:28 投稿
C++言語の基本概念と機能概要
名前空間
識別子の名前衝突を防止するためのnamespaceキーワードについて解説する。異なるスコープで同名の要素を定義可能。
namespaceの基本構文
namespace MathLib {
double pi = 3.14159;
double circle_area(double r) {
return pi * r * r;
}
struct Point {
double x, y;
};
}
namespace PhysicsLib {
double g ...
6月8日 19:25 投稿
Rustにはポインタ型のデータがあるのか?変数のメモリアドレスを確認できるか?
Rustでは、C/C++のような直接的なポインタ型は存在しないが、ポインタの概念はあり、メモリを安全に操作するためのさまざまな方法が提供されている。変数のメモリアドレスを確認することも可能である。
1. 参照(References)
Rustの参照(& と &mut)は、所有権ルールと借用チェックによって保護された安全なポインタと見なすことができる。参照は変数の値にアク ...
5月25日 16:15 投稿
C++のキーワードと演算子の詳細
ポインタと参照
基本定義
ポインタ: オブジェクトのアドレスを格納する変数。自身のメモリアドレスを持つ。
参照: 変数の別名。宣言時に初期化必須。
相違点
特性ポインタ参照
多重間接参照サポート (例: int**)単一参照のみ
null許容NULL/nullptr可不可
初期化宣言と初期化を分離可宣言時必須
再代入対象変更可不可
sizeof演算ポインタサイズを返す(4/8byte)参照先サ ...
5月20日 03:36 投稿