A 回答 (5件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
テキストセグメントってのは実行時のメモリの区分で、基本的にはプログラムが乗る部分のことですね。
読み込み・実行が(通常)可能で、書き込みは(通常)不可。実行ファイル(及び動的ライブラリ)の該当セクションのデータがだいたいそのまま乗っかります。静的な文字列なら.rodataセクションに乗ってたと思います。rodataはテキストセグメントにマッピングされますね。
いっぽうで、実行時に作成される文字列は実行ファイルに載せようがないので、テキストセグメントには乗りません。実行時にヒープに確保されることになります。
で、私はC++には疎いのですが、stringオブジェクトを確保した場合はそのオブジェクトはヒープ領域に作られるんではないでしょうか?
ソースコードに書かれている文字列であれば、char列自体は静的に確保されていると思いますが、オブジェクト自体はヒープに確保されるんではないかと思います。
この回答へのお礼
お礼日時:2009/04/24 16:58
回答ありがとうございます。
それで質問なのですが
<実行に作成される文字列は実行ファイルに載せようがないので、テキストセグメントには乗りません。
実行時に作成される文字列とはどういった時なのでしょうか?あと静的な文字列とはどういうものなのでしょうか?質問ばかりですみません。
No.2
- 回答日時:
仕様上「テキストセグメント」なる言葉も「ヒープ」なる言葉も,
少なくとも文字列に関わる場所ではでてきません。
文字列定数は静的記憶域期間を持つオブジェクトとして処理され,
char * / wchar_t *は静的・自動・割付のどれかの記憶域期間を持つchar/wchar_tへの配列のオブジェクトを参照し,
std::basic_stringはおそらく内部で割付記憶域期間を持つオブジェクトを参照するcharTへのポインタを保持しているでしょう。
No.3
- 回答日時:
処理系が特定されていないので規格の話とします.
「ヒープ」って何? 「テキストセグメント」って何?
特定の処理系が特定の作業をするために「ヒープ」あるいは「テキストセグメント」と呼称されるメモリ領域を使うことはあるかもしれませんが, そのようなことは C/C++ の規格で規定されているものではありません.
そもそも規格レベルだと「引数をスタックに積んで関数を呼び出す」がアウトなんだよなぁ....
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- docomo(ドコモ) フルセグ対応のガラケーは、ありますか?? ワンセグ(1セグメント)ではなくフルセグ(12セグメント) 3 2022/07/31 11:23
- FTTH・光回線 HGW経由でルーター接続(IPv4 over IPv6)時のセグメントについて 2 2022/07/26 14:14
- 固定IP MACアドレスはLAN内で相手を特定するアドレスですか? PCから監視カメラを閲覧するときに、セグメ 3 2022/07/23 09:04
- セキュリティホール・脆弱性 VLAN で分けましたが・・。 5 2023/04/04 14:24
- Android(アンドロイド) らくらくスマホにはなぜフルセグを搭載しなかったのでしょうか?? なぜ最新機種のF-52Bでもワンセグ 2 2023/05/09 20:17
- docomo(ドコモ) Xperia 1 Vってなぜフルセグ非対応なのでしょうか?? その理由を教えてください。次世代機のX 4 2023/05/13 22:47
- 国産車 彩速ナビの音質ケンウッドについて 今から9年前にZ700を購入。その音の良さに感動しました。4年後7 1 2023/02/13 21:49
- ネットワーク L3の勉強。何から始めてどうすればいいのでしょうか 2 2022/07/24 17:32
- 会社・職場 45の男性がLINEで絵文字を使うのは引くという噂を聞きました。(女性へLINEする場合) テキスト 1 2023/03/19 20:41
- その他(パソコン・スマホ・電化製品) アクロバットリーダーでテキスト入力して保存すると四角の中に×が入った状態になります 文字化け❓️ 解 1 2023/08/16 08:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
パワーポイントのVBAでテキスト...
-
多人数のじゃんけんプログラム
-
C#でフォームのオブジェクト名...
-
Excelで =EMBED("Acrobat Docu...
-
COMコンポーネントって何?
-
Vbで通常使用するプリンターを...
-
bmp画像をjpegやpng画像に圧縮...
-
文字列でクラス型名を取得したい
-
Accessの連結・非連結オブジェ...
-
VBAのWindowオブジェクトとWork...
-
オブジェクト名をforループ内で...
-
Object型からDouble型へのキャスト
-
ArrayLsitのデータ取得
-
Listに格納されているオブジェ...
-
Listに格納されたオブジェクト...
-
JAVAからHTMLへ値を返す方法
-
Visual Studioでのbmpファイル...
-
.getElementById()のエラーにつ...
-
javaでは基本型の参照渡しは無...
-
LISTBOXの内容が更新されま...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
パワーポイントのVBAでテキスト...
-
Excelで =EMBED("Acrobat Docu...
-
EXCEL VBAにて動的にCheckBOXを...
-
ワイルドカード<?>と型パラメー...
-
C#でフォームのオブジェクト名...
-
VBAのWindowオブジェクトとWork...
-
vb.net オブジェクト指向につい...
-
COMコンポーネントって何?
-
オブジェクトレベルとメタレベル
-
ビジュアルC++でボタンの有...
-
時間帯判定をする。
-
LISTBOXの内容が更新されま...
-
VBA 同じ名前のオブジェクトを...
-
オブジェクト名をforループ内で...
-
Object型からDouble型へのキャスト
-
ADO オブジェクトの渡し方
-
bmp画像をjpegやpng画像に圧縮...
-
Vbで通常使用するプリンターを...
-
戻り値がクラスオブジェクト
-
VBAでvlookup関数から、別シー...
おすすめ情報