[prev] [index] [next]

C execution: Memory

An executing C program partitions memory into:
  • code ... fixed-size, read-only region
    • contains the machine code instructions for the program
  • global data .. fixed-size, read-write region
    • contain global variables and constant strings
  • heap ... very large, read-write region
    • contains dynamic data structures created by malloc() (see later)
  • stack ... dynamically-allocated data (function local vars)
    • consists of frames, one for each currently active function
    • each frame contains local variables and house-keeping info