[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: about "size" from binutils



Hallo Dirk,

Dirk Neumann <neum_d@yahoo.de> wrote:
> On Mon, 28 Jan 2008 12:11:51 +0000 (UTC)
> Jörg Sommer <joerg@alea.gnuu.de> wrote:
>
>> > Unix-Speichermodell für Prozesse: 
>> > text ... Anweisungen (das, was im I-Cache landet)
>> > data ... "Harte" Variablen (z.B. int i)
>> > bss ... dynamischer Speicher (z.B. std::vector myvec)
>> 
>> Unter dynamischem Speicher habe ich bisher malloc und sowas verstanden?
>
> Ja. Mein Beispiel ist genau das, nur schrieb ich nicht <type>* myvec
> Wenn zur Compilezeit die Größe des zu reservierenden Speichers bekannt
> ist, dann wird eine entsprechende Menge im bss-Segment reserviert und
> der initialisierte Zeiger kommt ins data-Segment. Ist die Größe zur
> Compilezeit nicht bekannt, wird das hinter das bss-Segment gelegt und im
> bss-Segment steht nur ein uninitialisierter Zeiger.

Warum wird der uninitialisierte Zeiger nicht ins data Segment gelegt?
Dessen Größe ist doch fest.

Malloc, genauer brk, verändert doch die Größe des data Segments. Welche
Funktion erfüllt das bss Segment?

Schöne Grüße, Jörg.
-- 
“Unfortunately, the current generation of mail programs do not have
 checkers to see if the sender knows what he is talking about”
            (Andrew S. Tanenbaum)


Reply to: