Re: Memory initialization (not)

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

 



On Tuesday 30 September 2008, Jim Dougherty wrote:
> I have a section of memory that I do not want to be initialized with
> zeros when my program starts.
> Is there a way to achieve this?

I think that zero initialization is a consequence of how the process images is 
created. For example:

static char a[65536];

will make the .bss section of size ~65536 bytes which is allocated by the 
dynamic linker by means of mmap() which always provides zeroed-out pages.

So to answer your question: global variables are likely to be always 
initialized with zero (it's out of gcc-s hands). Stack variables, on the 
other hand, are "initialized" with whatever is on the stack, which yeah, if 
you don't explicitly initialize them, could be called uninitialized. :)

-- 
Mihai DonÈu (unices@xxxxxxxxxxxxxxx)

[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux