Memory as a Programming Concept in C and C++

  • 3h 47m
  • Frantisek Franek
  • Cambridge University Press
  • 2004

The overwhelming majority of program bugs and computer crashes stem from problems of memory access, allocation, or deallocation. Such memory-related problems are also notoriously difficult to debug. Yet the role that memory plays in C and C++ programming is a subject often overlooked in courses and books because it requires specialized knowledge of operating systems, compilers, and computer architecture in addition to a familiarity with the language themselves. Most professional programmers learn about memory entirely through experience of the trouble it causes.

This book provides students and professional programmers with a concise yet comprehensive view of the role that memory plays in all aspects of programming and program behavior. Assuming only a basic familiarity with C or C++, the author describes the techniques, methods, and tools available to deal with the problems related to memory and its effective use.

About the Author

Frantiske Franek is Professor of Computer Science at McMaster University, where he helped found the Algorithms Research Group. Franek’s academic career encompasses research in mathematics (from the well-known Balcar-Franek theorem in Boolean algebra to finite combinatorics) as well as in computer science (from algorithms on strings to artificial intelligence). The author earned his Ph.D. at the University of Toronto and has held positions at several universities, including the Wesley Young Researchship at Dartmouth College. Franek has worked as a consultant on many commercial C/C++/Java projects internationally.

In this Book

  • Introduction
  • From Source File to Executable File
  • Variables and Objects; Pointers and Addresses
  • Dynamic Allocation and Deallocation of Memory
  • Functions and Function Calls
  • One-Dimensional Arrays and Strings
  • Multi-Dimensional Arrays
  • Classes and Objects
  • Linked Data Structures
  • Memory Leaks and Their Debugging
  • Programs in Execution: Processes and Threads
SHOW MORE
FREE ACCESS