
こんばんは。
表題の通り、セクション領域に関して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 Replace関数について教えて...
-
CSSが全く分かりません、お助け...
-
CPUが16bitでも32bitOSでコンパ...
-
最初に聞かれたこと
-
c言語の問題の説明、各所ごとに
-
Cのオブジェクトファイルの逆ア...
-
C言語 関数、変数の宣言について
-
C言語について。
-
C言語でファクト関数を使わずに...
-
プログラミング 素数か素数では...
-
あってる
-
DNCL(共テ用プログラミング言語...
-
int16_t の _t は何?
-
DLLファイルの逆コンパイラにつ...
-
visual studio 2022でのC#プロ...
-
プログラミングc++を全く分か...
-
DNCL(共テ用プログラミング言語...
-
C言語 配列と関数の練習問題
-
gccを行ってもexeファイルが生...
-
C言語 列挙型(enum型)変数について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA XML の置換方法
-
DLL共用セクションの質問です
-
translateの応用?文字の置換
-
コンボボックスのドロップダウン
-
メモリのセクションに関して
-
CPUの考え方を教えてください ...
-
ルート要素ノードが2個ある場合?
-
SNMP リンクダウンとノードダ...
-
東芝のDynabookなのですがアン...
-
XMLで要素が記述された順番に意...
-
XML、XSLTの適応エラー(IEから...
-
C#でTreeViewのCheckBoxのサイ...
-
xmlファイルが上手にHTMLに変換...
-
昔Winnyってありましたけど、あ...
-
バッチファイルでテキストファ...
-
ノードとは
-
4バイトを10進数に変換する方法
-
特殊記号が勝手にエスケープさ...
-
同じタグ名の項目取得
-
このエラー、何とかなりません...
おすすめ情報