Possible Duplicate:
Stack,Static and Heap in C++
Hi guys,
I am currently preparing for interviews, and quite often i see questions like, where are “static” variables or where are “local”/”global” variables stored and im totally puzzled.
I’m aware of two kinds of memory: Stack and Heap. Other than this, are there any other types of memory, where different kind of variables are stored. At a few places, i even read something about “Data Segment”, but i m not sure as to how these things map to each other. Can anyone provide me with any links/explanations to different types of memory and where all the different kinds of variables are stored, preferably related to C++.
Thanks,
Chander
To simplify just a bit, there are basically three main storage areas you need to be concerned with:
Global data — a single static memory location outside the stack or heap. These are the variables declared not local to any function. (The distinction evident by the C/C++ “static” keyword is really just about which parts of the program are aware of the name of a global variable.)
Stack data — dynamic, but pushes and pops with function calls.
Heap data — the stuff returned by new/malloc, truly dynamic and the memory persists until a delete/free, rather than when functions exit.