Wpis z mikrobloga

Ma prawo być NULL bo jest definiowany tak

#define NULL 0


@piszczalka: @wieczniezielony: Niekoniecznie! NULL jest implementation-defined, z tym że musi to być wyrażenie na liczbach całkowitych dające zero. A ponieważ większość implementacji wybiera właśnie zero, to dlatego ten kod działa. Ale działa tylko i wyłącznie przez przypadek, gdyż najzwyczajniej jest to logicznie niepoprawne.

Nie ma żadnego powodu aby stosować tam NULL zamiast 0, to tylko zaciemnia obraz i może
@wolodia: Musze na to spojrzec dluzsza chwile, bo na pierwszy rzut oka nie jest to dla mnie zrozumiale, ale dzieki za rade, napewno sie doksztalce w tym kierunku.

@vydyah: Jesli w plku bedzie jakis punkt ktory ma wspolrzedne x=0 y=1234354, to przy wczytytaniu x petla sie zerwie bo jest tam ten nieszczesny NULL.

@wolodia: Moim zdaniem ma prawo. Znak konczacy w stringu to \0 czyli wlasnie NULL/nullptr. Sprobuj odpalic
Jesli w plku bedzie jakis punkt ktory ma wspolrzedne x=0 y=1234354, to przy wczytytaniu x petla sie zerwie bo jest tam ten nieszczesny NULL.


@wieczniezielony: Jak napisałem wyżej: 0 != NULL != '\0'
To że wartość całkowita tych wyrażeń zapewni równoważność nie znaczy że to są te same typy. To są logicznie zupełnie inne pojęcia.

Moim zdaniem ma prawo. Znak konczacy w stringu to \0 czyli wlasnie NULL/nullptr. Sprobuj odpalic bez
Pisalem gdzies tam wyzej wlasnie o tym i < str.size() lub o dodaniu spacji na koniec kazdego wiersza w pliku. Ten drugi pomyls wymagalby tez modyfikacji pierwszej petli, bo dlugosc lini sie zwiekszy, a z drugiej strony sprawddzac dwa razy ten sam warunek...


@wieczniezielony: Masz zagnieżdżoną pętlę, obie modyfikują ten sam iterator i poprawność obu pętli zależy tylko i wyłącznie od tego aby ten iterator nie przekroczył dozwolonej wartości. To wymaga
@wolodia: Moglbys mi wyjasnic co napisales tu

"Niekoniecznie! NULL jest implementation-defined, z tym że musi to być wyrażenie na liczbach całkowitych dające zero. A ponieważ większość implementacji wybiera właśnie zero, to dlatego ten kod działa. Ale działa tylko i wyłącznie przez przypadek, gdyż najzwyczajniej jest to logicznie niepoprawne.

Nie ma żadnego powodu aby stosować tam NULL zamiast 0, to tylko zaciemnia obraz i może prowadzącemu nasunąć myśl że student nie wie