riddik napisał(a):
Jak zamiast sizeof(input_pins) wpiszę na sztywno 5 oczywiście warninga nie ma.
Co tak na prawdę ten warning oznacza i jak się go pozbyć?
To może byś spróbował
(sizeof(input_pins)/sizeof(input_pins[0])?
"warning: iteration 5u invokes undefined behavior"
"piąta iteracja pętli wywoła niezdefiniowane zachowanie"
sizeof(input_pins) na pewno zwraca wartość większą niż 5, bo zwraca rozmiar całej tablicy w bajtach, a nie ilość jej elementów. A kiedy wartość indeksu przekroczy ilość elementów w tablicy (w Twoim kodzie zmienna
i może przyjmować wartości od 0 do 4), to co się może wydarzyć? Skąd dane będą czytane i gdzie zapisywane? To jest właśnie "undefined behavior" czyli "niezdefiniowane zachowanie" programu, bo dane mogą być odczytywane z i zapisywane do lokalizacji poza tablicą, gdzie mogą znajdować się inne zmienne.