No.2
- 回答日時:
C++はJavaと違ってnew演算子を使わなくてもインスタンスの生成できます。
StructHoge sh;
スタック領域で確保されるのは、こういう風にインスタンスを生成する場合です。
ただし#1でいわれているようにC++の規格にスタック領域があるわけではありません。
>C++はJavaと違ってnew演算子を使わなくてもインスタンスの生成できます。
>StructHoge sh;
>スタック領域で確保されるのは、こういう風にインスタンスを生成する場合です。
C++の構造体はデフォルトのアクセス権が違うだけであとはクラスと同じ振る舞いなんですよね。
ところで、
>ただし#1でいわれているようにC++の規格にスタック領域があるわけではありません。
↑はどういう事なのでしょうか?
色々検索してみてもC++でスタック領域、ヒープ領域という風に説明されているサイトが多いのですが、
スタック領域がないとすると、何処に確保されるのでしょうか?
No.3
- 回答日時:
はっきりいってしまうと, 言語の規格上「変数がどのメモリ領域に配置されるのか」というのは瑣末なことでしかありません. 真に大切なのは「オブジェクトが (時間的あるいはソースコード上の) どの範囲で有効なのか」です. 例えば
void foo()
{
int i = 0;
for (i = 0; i < 100; ++i) {
printf("%d\n", i);
}
}
という関数 (C だけど) では, 変数i が「int i = 0; の行から関数の最後まで有効である」ことさえ知っていれば, どのメモリ領域にあろうと何も問題ありませんよね? その意味で, 規格において「スタック領域」やら「ヒープ領域」やらというものを持ち出す必要はないのです.
もちろん「現実の機械」で上のプログラムを使うとすると変数i はスタック領域に置くことになるでしょうが, それはあくまで
「int i = 0; の行から関数の最後まで」という変数i の有効範囲を実現するためにはスタック領域に置いた方が都合がいい
だけであって, 規格で強制されているわけではありません.
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# あまりわかりません。 複素数$c$を具体的に定めた複素写像写像$f_c(z)$に対して、原点を含む領 4 2022/10/25 09:17
- ノートパソコン パソコンを、アップグレードした後に出来た、Cドライブの後に出来た、このドライブは? 3 2023/04/03 17:10
- C言語・C++・C# ポインタの型変換、どうやるんでしたっけ? 2 2022/03/28 11:00
- CPU・メモリ・マザーボード デスクトップPCのOS(C:)の空き領域がどんどん減ります。 9 2022/12/12 09:24
- 数学 絵は 1 2022/10/25 15:56
- その他(ブラウザ) bingチャットの内容(縦長)をスクリーンショットで保存する方法 3 2023/02/28 02:13
- ドライブ・ストレージ HDDの未割り当て領域が認識されない 7 2022/11/27 18:51
- C言語・C++・C# C言語の質問です。 以下の命令を実行するプログラムを作りました ①文字列aとbの長さを表示 ②aとb 1 2022/04/29 15:35
- C言語・C++・C# 写真のc言語の問題がa以外わかりません。 正直aも自信がなく、解説していただけないでしょうか? 答え 3 2022/04/29 18:21
- 物理学 電界がE=c(y^2z^3i+2xyz^3j+3xy^2z^2k)と与えられた場合(E.i.j.kは 1 2022/08/01 14:07
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
大容量のメモリ確保をスワップ...
-
エクセルのメモリ使用状況/Appl...
-
Apacheでバーチャルホストの最...
-
変数をあなたの身近なものに例...
-
LoadLibraryしたらFreeLibrary
-
【C言語】再帰が時間がかかる...
-
ファイルマッピング関数で失敗
-
動的メモリとexit(C言語)
-
C言語で、メモリを解放しないで...
-
メモリのセグメント違反の解決...
-
closeとメモリの開放について
-
VBAの配列サイズとメモリに関して
-
C#におけるexeファイルのサイズ...
-
メモリが不足しています(VBA)
-
プログラム開発勉強専門のPC...
-
64bit C#アプリ メモリをたくさ...
-
メモリを解放しないとどうなる?
-
Macターミナルで実行中のプログ...
-
緯度、経度の 10進法と 60進法...
-
家電製品の電力周波数を変える機械
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語で、メモリを解放しないで...
-
VBAの配列サイズとメモリに関して
-
「ヒープサイズの設定」て何?
-
エクセルのメモリ使用状況/Appl...
-
エクセルVBA 大容量CSVファイル...
-
EXCEL-VBAにてADOのレコードセ...
-
バッチファイルでの実行EXEのメ...
-
メモリ不足
-
メモリのセグメント違反の解決...
-
メモリが不足しています(VBA)
-
【C言語】再帰が時間がかかる...
-
ファイルマッピング関数で失敗
-
C言語:関数のメモリ上でのサイ...
-
メモリの解放の仕方
-
VC++におけるメモリ使用量について
-
メモリの消費量について
-
Bitmapを重ね合わせる方法
-
メモリを解放しないとどうなる?
-
C#のOutOfMemoryException発生...
-
メモリの解放について VB6 VBA
おすすめ情報