Tworzenie tablicy booleanów - Dlaczego takie wartości i czy musze ją NULLować?

0

Witam, spotkałem się z czymś czego nie potrafię zrozumieć i potrzebuje wyjaśnienia skąd biorą się te wartości i dlaczego przy tworzeniu tablicy o szerokości zmiennej zamiast wartości wyświetla ich znacznie mniej

title

title

title

3

to jest tak złe że aż bolą oczy.

NULL to pointer i nie powinno się tego tak porównywać (z bool) ale skoro już porównujesz to NULL zwraca zawsze 0 co gwarantuje standard ( w rzeczywistości to nie musi leżeć na zero ).
Także część śmieci które leżą w twojej tablicy jest wyzerowana stąd takie wyniki.

1

W pierwszych dwóch przykładach tablice są niezainicjalizowane - zawierają śmieci.
Choć kod prawdopodobnie nie zawiera “undefined behavior”, wynik jest przypadkowy, i VLA nie ma tu nic do rzeczy - ot, przypadek, że wartość 0 znalazła się w innym miejscu.

Trzeci kod jest formalnie prawidłowy, ale jest w złym stylu: skoro wartości są typu bool, powinieneś użyć false a nie NULL jako wartości zerowej.

1 użytkowników online, w tym zalogowanych: 0, gości: 1