end, etext, edata - Defines the last location of a program
extern end; extern etext; extern edata;
The external names end, etext, and edata are defined for all programs.
They are not functions, but identifiers associated with the following
addresses: The first address following the program text. The first
address following the initialized data region. The first address fol‐
lowing the data region that is not initialized.
The break value of the program is the first location beyond the data.
When a program begins running, this location coincides with end. How‐
ever, many factors can change the break value, including: The brk()
function The malloc() function The standard I/O functions The -p flag
on the cc command
Therefore, use sbrk(0), not end, to determine the break value of the
Functions: brk(2), malloc(3)