Pameť a C
                                  -=-=-=-=-=-

          In the  beginning  was the Tao. The Tao gave  birth to Space and
      Time. Therefore, Space and Time are the Yin and Yang of programming.
          Programmers  that do not comprehend the Tao are  always  running
      out  of  time  and  space  for  their  programs.   Programmers  that
      comprehend the Tao always  have enough  time and space to accomplish
      their goals. How could it be otherwise?
                  -- Geoffrey James, "The Tao of Programming"

          V tomto  článku  bych se chtěl  podívat na různé  prostředky pro
      zprávu  dynamické  paměti v C jako jsou funkce správu haldy, utility
      pro  kontrolu  správnosti  programu  či garbage-collecting.  Protože
      velké množství těchto prostředků je závislých na platformě,  zaměřím
      se zejména na dvě mnou prozkoumané  platformy - GNU/Linux (a UNIXové
      systémy) a DJGPP (GNU překladač pro DOS).

          Každý  asi  ví,  že  C  dělí  paměť  na  tři  zákládní  části  -
      inicializovaná data, zásobník a haldu. Inicializovaná data se naplní
      při linkování  programu a obsahují  statické proměné. Z mého pohledu
      je tato sekce nyní nezajímavá. Zásobník se přiděluje automaticky při
      volání funkce a haldu většina  programů  přenechává  voláním  malloc
      a free.

          V  UNIXu  jsou  většinou  procesy  organizovány  tak,  že  halda
      a  zásobník  jsou  na  opačných  koncích  adresovatelného   prostoru
      a rostou  proti  sobě. Tím pádem  můžou  růst  prakticky  neomezeně.
      Konec haldy určuje ukazatel break, za kterým je paměť už pro program
      nepřístupná. Posouvání tohoto ukazatele se provádí pomocí volání brk
      a sbrk.

                             break
                               v
                   -----------------------------------------
                   |   halda   |               | zásobník  |
                   -----------------------------------------

                          Dynamická alokace zásobníku                     

                                 Alokace haldy                            

                      Kontrola správnosti použití paměti                  

                               Garbage Collector                          

                                  Literatura                              


            výheň