Wpis z mikrobloga

fib[-1] czyli undefined behavior.


@lionbest: Jestem prawie pewny, że jesteś w błędzie. fib[-1] powinno zwyczajnie odwołać się do komórki pamięci znajdującej się 1 bajt przed początkiem tablicy fib.

Jeśli proces nie zaalokował tej komórki w systemie, to nastąpi zwyczajne naruszenie pamięci.
Czyli UB


@lionbest: Ok, być może źle rozumiałem definicję UB, ale za wiki:

In computer programming, undefined behavior (UB) is the result of executing computer code whose behaviour is not prescribed by the language specification to which the code adheres


I teraz odwołując się do specyfikacji C99:

The definition of the subscript operator [] is that E1[E2] is identical to (*((E1)+(E2))).


moim zdaniem zachowanie instrukcji fib[-1] nie wpasowuje się zatem