
こんばんは。
表題の通り、セクション領域に関して3点ほどご質問が御座います。
(1)グローバル変数は、
・0でない初期化を行う→.dataセクション
・0で初期化、または、初期化なし→.bssセクション
上記のようにメモリに配置されると思いますが、
上記をstatic宣言した場合でも結果は同じでしょうか?
(static宣言したグローバル変数)
(2)スタック、ヒープそれぞれが属するセクションは、それぞれ専用の
スタックセクション、ヒープセクションという名のセクションがあるという認識であっていますでしょうか?
(.dataでもなく、.bssでもなく、.textでもなく、.rodataでもなく。。。)
(3)プログラム中に宣言した変数名や、そのアドレスを使用して、属しているセクションを確認することが出来る方法はありますでしょうか?
どうかご教授をお願い致します。
No.2ベストアンサー
- 回答日時:
> (1)グローバル変数は、
> 上記をstatic宣言した場合でも結果は同じでしょうか?
> (static宣言したグローバル変数)
静的グローバル変数はシンボルの公開が抑止されるのみでその他に違いはない場合が多いかと。
> (2)スタック、ヒープそれぞれが属するセクションは、それぞれ専用の
> スタックセクション、ヒープセクションという名のセクションがあるという認識であっていますでしょうか?
ありません。
> (3)プログラム中に宣言した変数名や、そのアドレスを使用して、属しているセクションを確認することが出来る方法はありますでしょうか?
通常、各アドレスはまとまっている(例えば1000-2999はtextで3000-3999はbss,4000-5999はdataの様に)のでアドレスを調べれば解ります。
実行ファイルの形式上情報がありますので実行ファイルを解析すれば各セクションの位置や大きさはわかります。(詳しく知りたい場合にはunix系のsizeコマンドのソースを参照するのも良いかと)
elf形式やaout形式にマニュアルページやヘッダなども知る上で良い資料となりそうに思います。
※javaやC++には固有のセクションが追加されている場合があったり。
> (3)プログラム中に宣言した変数名や、そのアドレスを使用して、属しているセクションを確認することが出来る方法はありますでしょうか?
通常、アドレスを調べれば解ります。
予約された領域を除き残った領域を下位アドレスからヒープとして、上位アドレスからスタックとして動的割り当てしたりするのではないかな。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- いじめ・人間関係 高校生の吹奏楽部です。 今度、他校と見せ合う演奏会とコンクールメンバーを決めるオーディションがありま 1 2022/04/23 14:56
- Visual Basic(VBA) ActiveReportのdetailをデータセットの自動バインドを使って帳票を出力しています。 1 2023/08/16 07:16
- IT・エンジニアリング ActiveReportのdetailをデータセットの自動バインドを使って帳票を出力しています。 1 2023/08/16 07:17
- CPU・メモリ・マザーボード 「コンピューターのメモリが不足しています」 5 2022/12/15 10:10
- CPU・メモリ・マザーボード 「コンピューターのメモリが不足しています」 3 2022/12/15 22:07
- その他(恋愛相談) 好みのタイプじゃなかったら時間のムダってセクション出来るかどうかって事ですか。 話が進んでリアルで会 2 2023/01/05 21:34
- 心理学 バイトには一瞥もくれず追い抜いていく正社員(゜-゜) 5 2023/06/29 22:47
- 哲学 後からずっと前を歩いているのが誰か分かっているのに通り過ぎざまノーアクションな正社員(゜_゜) 2 2023/06/29 10:30
- 哲学 後からずっと前を歩いているのが誰か分かっているのに通り過ぎざまノーアクションな正社員(゜_゜) 2 2023/06/29 10:30
- Word(ワード) Google ドキュメントで改ページを挿入する方法 1 2022/05/25 19:22
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
c言語
-
CPUが16bitでも32bitOSでコンパ...
-
visual studio 2022でのC#プロ...
-
VisualStudio2022でC言語プログ...
-
gccを行ってもexeファイルが生...
-
C言語 1から20までの逆数の和を...
-
C++でデスクトップGUIアプリ開...
-
プログラミング言語でアプリや...
-
C#でTreeViewのCheckBoxのサイ...
-
[C言語]fputsとfprintfの違い
-
終端記号、非終端記号とは
-
VisualStudioでのプログラミン...
-
gcc13.2のバグ?
-
C言語について。
-
VisualStudioでC++クラスを追加...
-
c言語でイベントフラグを使った...
-
大量のデータを読み込んで表示...
-
C# DatagridviewにExcelシート...
-
C言語の関数のextern宣言
-
プログラマー達は何故、プログ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
XMLSchemaの検証
-
translateの応用?文字の置換
-
VBA XML の置換方法
-
メモリのセクションに関して
-
変数や関数の命名規則?構文規則?
-
DLL共用セクションの質問です
-
CDATAセクション
-
xml宣言をしたら・・・
-
xmlの初歩の初歩の質問ですが
-
(携帯XHTMLで書いた)フォント...
-
.xml utf-8での日本語表記について
-
CPUの考え方を教えてください ...
-
東芝のDynabookなのですがアン...
-
バッチファイルでテキストファ...
-
ルート要素ノードが2個ある場合?
-
SNMP リンクダウンとノードダ...
-
XMLで要素が記述された順番に意...
-
あるノードリストに、特定の名...
-
XML、XSLTの適応エラー(IEから...
-
C#でTreeViewのCheckBoxのサイ...
おすすめ情報