
こんばんは。
表題の通り、セクション領域に関して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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA XML の置換方法
-
メモリのセクションに関して
-
CPUの考え方を教えてください ...
-
あるノードリストに、特定の名...
-
XMLで要素が記述された順番に意...
-
C#でTreeViewのCheckBoxのサイ...
-
VBSでxmlの値を書き換えたい
-
昔Winnyってありましたけど、あ...
-
動的な構造体配列の初期化
-
Excel-VBAでXMLの複数ノードの...
-
4バイトを10進数に変換する方法
-
TOMCAT起動エラー
-
XSLTにてタグ名を取得する方法
-
コンテキストメニュークリック...
-
タグの有無の判定
-
VBでXMLファイルを作ると xmlns...
-
終了タグが認識されない?
-
ルート要素ノードが2個ある場合?
-
重複するものを消したい
-
VBAでxmlファイルの置換をしたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBのコメントはどう記述するの...
-
NASMアセンブリのセクションに...
-
VBA XML の置換方法
-
VBA 『Range』 『Cells』 の関係
-
Access2000レポート
-
xmlの初歩の初歩の質問ですが
-
メモリのセクションに関して
-
CPUの考え方を教えてください ...
-
東芝のDynabookなのですがアン...
-
ルート要素ノードが2個ある場合?
-
SNMP リンクダウンとノードダ...
-
XMLで要素が記述された順番に意...
-
Excel-VBAでXMLの複数ノードの...
-
複数のマックPCによる数値計算...
-
XML、XSLTの適応エラー(IEから...
-
バッチファイルでテキストファ...
-
同じタグ名の項目取得
-
C# TreeView 効率良いノード追...
-
C#でTreeViewのCheckBoxのサイ...
-
昔Winnyってありましたけど、あ...
おすすめ情報