C provides ways for a program to allocate, release, and access virtual memory in our physical address space; it is then up to the OS to manage the physical memory. The OS swaps virtual memory in and out of the physical memory as needed. In this way, our program is only concerned with the virtual memory address space.
C also provides some limits as to what memory can be accessed and how it can be manipulated. In Chapter 17, Understanding Memory Allocation and Lifetime, and Chapter 18, Using Dynamic Memory Allocation, we will explore some of the ways that C gives us limited control of our program's memory. In Chapter 20, Getting Input From the Command Line, and Chapter 23, Using File Input and File Output, we will explore how C allows us to get data dynamically from the user via the command line, as well as read and write data files. In each of these chapters, we will expand our conceptualization of memory and how it is used by our programs...