REKLAMA

Niezdefiniowane zachowanie w C

Pisząc programy w języku C, zapominamy czasem, iż zarówno sam język, jak i kompilatory mogą zachować się nieprzewidywalnie, co z kolei może znacznie wpłynąć na poprawność wykonania skompilowanego programu. Część takich zachowań została opisana w standardzie języka, jednakże nie zawsze zachowania te są dokładnie zdefiniowane.

Zagadnienia poruszane w tym artykule:

  • Przepełnienia (Overflow)
  • Przepełnienie ze znakiem
  • Podnoszenie pętli (ang. Loop Hoisting)
  • Indukcja w pętli
  • Niezainicjalizowane zmienne
  • Referencje
  • Wyrażenia

Artykuł pochodzi z miesięcznika "Programista" nr 4/2015 (35).

Spis treści całego wydania: http://programistamag.pl/programista-4-2015-35/

Autorami tego artykułu są: Marek Zmysłowski, Marcin Towalski, Christiaan Esterhuizen. Autorzy mają wieloletnie doświadczenia w branży związanej z bezpieczeństwem IT. Są częścią zespołu testującego bezpieczeństwo aplikacji w międzynarodowej firmie. Ich zainteresowania skupiają się w głównie w obszarze inżynierii wstecznej, fuzzingu oraz bezpieczeństwa kodu.

ce