\section{Reference Counts
\label{refcounts}}
-In languages like C or \Cpp, the programmer is responsible for
-dynamic allocation and deallocation of memory on the heap. In C,
-this is done using the functions \cfunction{malloc()} and
-\cfunction{free()}. In \Cpp, the operators \keyword{new} and
-\keyword{delete} are used with essentially the same meaning; they are
-actually implemented using \cfunction{malloc()} and
-\cfunction{free()}, so we'll restrict the following discussion to the
-latter.
+In languages like C or \Cpp, the programmer is responsible for dynamic
+allocation and deallocation of memory on the heap. In C, this is done
+using the functions \cfunction{malloc()} and \cfunction{free()}. In
+\Cpp, the operators \keyword{new} and \keyword{delete} are used with
+essentially the same meaning so we'll restrict the following
+discussion to the C case.
Every block of memory allocated with \cfunction{malloc()} should
eventually be returned to the pool of available memory by exactly one