Refer Sample Here
As the name implies it is the
segment for application data. Do you heard your senior asking
multiple questions when you declare a global variable? He asks,
because the global variables go and sit in the data segment of the memory. So
what? If it sits there, it lives until the program dies and there is no ways to
say get lost. Think about a big project and 1000 of people worked on it (Even
in maintenance) for last 10 to 20 years and declared plenty of global variables
even when it is avoidable by alternate techniques. When the program loads (in
Code segment) it needs to allocate space for all those variables and allocated
space is never cleared until the program exits. That is why we call these
global variables and constants are application data. The memories associated to
these global are known as data segment memory and it will get
cleared when the program is removed.
In our example the following two
statements are occupying the memory in the data segment.
//MemSeg01: Declare a Global Variable
int
x = 10;
//MemSeg02: Store address of the Global variable
in a Global Pointer
int* px = &x;
Note
that the pointer px is holdling the address of some data segment
memory allocated to variable integer x. Also, the space required
for holding that address also allocated in the data segment. Here, the value in
the px, x can be changed. But, the space allocated for it cannot
be washed out.