[解決済み] ポインターの大きさはどのくらいですか?
2022-03-02 05:52:04
質問
ポインターのサイズは、それが指す型のサイズと同じですか?それともポインターは常に固定サイズですか? 例えば...
int x = 10;
int * xPtr = &x;
char y = 'a';
char * yPtr = &y;
std::cout << sizeof(x) << "\n";
std::cout << sizeof(xPtr) << "\n";
std::cout << sizeof(y) << "\n";
std::cout << sizeof(yPtr) << "\n";
この場合、出力はどうなるのでしょうか? どうでしょう?
sizeof(xPtr)
は4を返し
sizeof(yPtr)
は1を返します。それとも2つのポインタは実際には同じ大きさを返すのでしょうか? なぜこのような質問をするかというと、ポインターはメモリーアドレスを格納しているのであって、それぞれの格納されたアドレスの値を格納しているわけではないからです。
どのように解決するのですか?
ポインターは一般的に固定サイズで、例えば32ビットの実行ファイルでは通常32ビットです。 例外もあります。例えば、昔の16ビットWindowsでは、32ビットポインタと16ビットポインタを区別しなければなりませんでしたが... 最近のデスクトップOSでは、ある実行ファイル内では一様であると仮定するのが安全です。
編集:それでも、私はこの仮定をすることに強く注意を促します。 あなたのコードで . 絶対にあるサイズのポインタを持たなければならないものを書くなら、確認した方が良いですよー。
関数ポインタはまた別の話です。 Jensの回答 をご覧ください。
関連
-
[解決済み】getline()が何らかの入力の後に使用されると動作しない 【重複あり
-
[解決済み】致命的なエラー LNK1169: ゲームプログラミングで1つ以上の多重定義されたシンボルが発見された
-
[解決済み】リンカーエラーです。"リンカ入力ファイルはリンクが行われていないため未使用"、そのファイル内の関数への未定義参照
-
[解決済み] 数値定数の前にunqualified-idを付けて、数値を定義することを期待する。
-
[解決済み] explicit キーワードの意味は?
-
[解決済み] ルール・オブ・スリーとは?
-
[解決済み] コピーアンドスワップ慣用句とは?
-
[解決済み] スマートポインターとは何ですか?
-
[解決済み] なぜ、オブジェクトそのものではなく、ポインタを使用しなければならないのですか?
-
[解決済み】C/C++の"-->"演算子とは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C++ - 解放されるポインタが割り当てられていないエラー
-
[解決済み】Cygwin Make bash コマンドが見つかりません。
-
[解決済み】関数名の前に期待されるイニシャライザー
-
[解決済み】fpermissiveフラグは何をするのですか?
-
[解決済み】リンカーエラーです。"リンカ入力ファイルはリンクが行われていないため未使用"、そのファイル内の関数への未定義参照
-
[解決済み】C++の余分な資格エラー
-
[解決済み】指定範囲内の乱数で配列を埋める(C++)
-
[解決済み】クラスのコンストラクタへの未定義参照、.cppファイルの修正も含む
-
[解決済み】std::cin.getline( ) vs. std::cin
-
[解決済み】システムが指定されたファイルを見つけられませんでした。