All Exams Test series for 1 year @ ₹349 only
Question

In C runtime environment, which one of the following is stored in heap?

The correct answer is
A dynamically allocated array of integers created using malloc() function call

C Memory Management: Heap Allocation

Understanding where different types of data are stored in a C program's runtime environment is crucial. The main memory areas are the stack, the heap, and the static/global data segment.

Memory Regions Explained

  • Stack: Used for local variables, function parameters, and return addresses. Memory is automatically managed (allocated and deallocated) as functions are called and return.
  • Heap: A region of memory available for dynamic memory allocation. Memory must be explicitly requested (e.g., using $malloc()$, $calloc()$) and released (e.g., using $free()$).
  • Static/Global Data Segment: Used for global variables, static variables (both global and local), and string literals. Memory persists for the entire program duration.

Analyzing the Options

Let's examine each option based on C memory allocation:

  • Static Variable: A static variable declared inside a function is stored in the static/global data segment, not the heap. Its lifetime spans the entire program execution.
  • Local Array: An array of integers declared inside a function (without the $static$ keyword) is typically allocated on the stack. Its memory is managed automatically and is released when the function exits.
  • Dynamically Allocated Array: An array created using $malloc()$ is explicitly allocated from the heap. This memory persists until explicitly deallocated using $free()$.
  • Return Address: The return address, which tells the program where to resume execution after a function call, is stored on the stack.

Conclusion on Heap Storage

Based on the analysis, only the dynamically allocated array using $malloc()$ is stored in the heap segment of the C runtime environment. This is the area designated for memory allocation whose size or lifetime is not known at compile time.

Was this answer helpful?

Important Questions from Memory Management

  1. A system has a Translation Lookaside Buffer (TLB) that has a reach of 1 MB. TLB reach is defined as the total amount of physical memory that can be accessed through the TLB entries. The paging system uses pages of size 4 KB. The virtual address space is 64 GB and physical address space is 1 GB. If each TLB entry stores a 4-bit process id, page number, frame number, and a 2-bit control field, then the size of the TLB (in bytes) is ___________. (answer in integer)

    Note: 1K=$2^{10}$, 1M=$2^{20}$, 1G=$2^{30}$
  2. Consider contiguous allocation of physical memory to processes using variable partitioning scheme. Suppose there are 8 holes in the memory of sizes 20 KB, 4 KB, 25 KB, 18 KB, 7 KB, 9 KB, 15 KB, and 12 KB. Assume that no two holes are adjacent. Two processes P1 of size 16 KB and P2 of size 9 KB arrive in that order, and they are allocated memory using the best-fit technique. After allocating space to P1 and P2, the number of holes of size less than 8 KB is ____________. (answer in integer)

    Note: 1K=$2^{10}$
  3. Match List I with List II
    List IList II
    A. Clustered Page TableI. Generally considered inappropriate for 64 bit architectures.
    B. Hierarchical Page TableII. Has only entry for each real page (or frame) of memory.
    C. SegmentationIII. Useful for Sparse address spaces.
    D. Inverted Page TableIV. Supports a user view of the system.

    Choose the correct answer from the options given below:
  4. Choose the correct answer.
    In memory management, page size is always, power of 2.
  5. Which of the following is a type of memory and is similar to RAM?

Need Expert Advice?

Start Your Preparation with Prepp Mobile App

Download the app from Google Play & App Store
Download the app from Google Play & App Store
Prepp Mobile App