Skip to content
Related Articles
Get the best out of our app
GFG App
Open App
geeksforgeeks
Browser
Continue

Related Articles

C | Dynamic Memory Allocation | Question 8

Improve Article
Save Article
Like Article
Improve Article
Save Article
Like Article

Consider the following program, where are i, j and k are stored in memory?




int i;
int main()
{
    int j;
    int *k = (int *) malloc (sizeof(int));
}


(A) i, j and *k are stored in stack segment
(B) i and j are stored in stack segment. *k is stored on heap.
(C) i is stored in BSS part of data segment, j is stored in stack segment. *k is stored on heap.
(D) j is stored in BSS part of data segment, i is stored in stack segment. *k is stored on heap.


Answer: (C)

Explanation: i is global variable and it is uninitialized so it is stored on BSS part of Data Segment (http://en.wikipedia.org/wiki/.bss)

j is local in main() so it is stored in stack frame (http://en.wikipedia.org/wiki/Call_stack)

*k is dynamically allocated so it is stored on Heap Segment.

See following article for more details.

Memory Layout of C Programs

Quiz of this Question

My Personal Notes arrow_drop_up
Last Updated : 08 Aug, 2018
Like Article
Save Article
Similar Reads