Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Nieprawidłowe działanie komputera poprzez błąd w kodzie - pętla for

Ostatnio zmodyfikowano 2015-11-14 15:07
Autor Wiadomość
whiskeyo
Temat założony przez niniejszego użytkownika
Nieprawidłowe działanie komputera poprzez błąd w kodzie - pętla for
» 2015-11-13 23:42:36
Cześć!
Mam pewno nurtujące mnie pytanie, otóż dzisiaj podczas testu działania pętli for popełniłem błąd, który wyrządził wg mnie duży, negatywny wpływ na maszyny podłączone do jednego, wspólnego serwera. Cała pętla wyglądała na takiej zasadzie: for (i=1;i++;i>6) cout << "Pokazanie tekstu: " << i << endl; - błąd jednak wychwycono dopiero po uruchomieniu programu, wówczas kiedy komputer się zawiesił, jak i pozostałe jednostki działające na tym samym serwerze, dlatego zastanawiam się, czy był to jedynie zbieg okoliczności, czy jednak takie użycie pętli mogło spowodować wyżej opisaną sytuację. Wiem, że pętla powinna wyglądać tak: for (i=1;i<=6;i++), jednak co się stało, to się nie odstanie :D Jeżeli znacie odpowiedź na moje pytanie, proszę o odpowiedź :)
P-140098
carlosmay
» 2015-11-13 23:49:19
To jest po prostu nieskończona pętla.
Zawieszenie powinno być dziełem przypadku.

edit: nie jest nieskończona. Po uzyskaniu przez i max swojego przedziału, przeskoczy na liczby ujemne i zatrzyma się na i = 0 (dla typu ze znakiem),
a dla typu bez znaku po przekroczeniu max przedział i będzie równe 0.
P-140099
whiskeyo
Temat założony przez niniejszego użytkownika
» 2015-11-13 23:51:18
Czyli zawieszenie wszystkich jednostek podłączonych do jednego dysku w przeciągu około 30 sekund jest możliwe?
P-140100
Monika90
» 2015-11-14 13:03:38
Jeśli i jest typu int, to ta pętla ma niezdefiniowane zachowanie, więc wg standardu c++ wszystko jest możliwe.
P-140105
carlosmay
» 2015-11-14 13:16:42
Jeśli i jest typu int, to ta pętla ma niezdefiniowane zachowanie
 myślałem, że każdy typ całkowity zachowuje się jak "licznik",
po osiągnięciu maksymalnej wartości swojego przedziału przyskakuje na minimalną wartość i tak wkoło.
P-140106
j23
» 2015-11-14 14:51:32
@carlosmay: Jest tak jak piszesz, w tej materii nic się nie zmieniło ;)
P-140110
pekfos
» 2015-11-14 15:07:44
myślałem, że każdy typ całkowity zachowuje się jak "licznik",
po osiągnięciu maksymalnej wartości swojego przedziału przyskakuje na minimalną wartość i tak wkoło.
Tylko unsigned. Dla typów ze znakiem, przepełnienie ma niezdefiniowane zachowanie.
P-140113
« 1 »
  Strona 1 z 1