Chapter 3. User-Level Memory Management

In this chapter

  • 3.1 Linux/Unix Address Space page 52

  • 3.2 Memory Allocation page 56

  • 3.3 Summary page 80

  • Exercises page 81

Without memory for storing data, it’s impossible for a program to get any work done. (Or rather, it’s impossible to get any useful work done.) Real-world programs can’t afford to rely on fixed-size buffers or arrays of data structures. They have to be able to handle inputs of varying sizes, from small to large. This in turn leads to the use of dynamically allocated memory—memory allocated at runtime instead of at compile time. This is how the GNU “no arbitrary limits” principle is put into action.

Because dynamically allocated memory is such a basic building block for real-world programs, we ...

Get Linux® Programming by Example now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.