Chyba nie do końca zrozumiałem, ale jeśli chcesz powtarzać jakieś instrukcje w nieskończoność wystarczy:
while(true)
{
// jakiś kod
}
lub
while(1)
{
// jakiś kod
}
Poza tym polecam Ci użycie tzw. przestrzeni nazw standardowych (przed int main i innymi funkcjami, zaraz przed definiowaniem zmiennych); dzięki temu nie będziesz musiał pisac przy każdym cin’ie, cout’cie, endl’inie etc. tego ‘std::’.
using namespace std;
np.:
#include
using namespace std;
int x;
int main()
{
cin >> x;
cout << x << endl;
return 0;
}
Aha, w ogóle to jak zaczynasz swoją przygodę z c++ to zamiast cin i cout radzę Ci używać funkcji printf i scanf. Są to funkcje wczytujące pochodzące z klasycznego C, ale działają dużo szybciej, aniżeli cin i cout.
Myślę, że system wywłaszczy proces, który pochłonie za dużo zasobów, przynajmniej ja bym to zapewnił pisząc system. Pozatym to smieszne stos zajmuje z góra 1024kb, jak chciałeś zając całą dostępną pamięć to może realloc w pętli co 100 mb na przykład. Ale i tak jak bedzie za dużo system po prostu ukiluje delikwenta.
@down
myślałem o tym, zeby zajmowac ciągłym fragmentem (do tego trzeba zwolnić poprzednią i zaalokować np. x2 w stosunku do tego co było) - w teorii jest większa szansa na niewpasowanie się w istniejące już luki i szybszy crash programu. Aczkolwiek przy skoku 100 mb ma to marginalne znaczenie.
Przy przepełnieniu stosu system ubije proces. Pamięć można zajmować “w nieskończoność”(dopóki się nie skończy, potem malloc/new będzie zwracał null/rzucał wyjątkiem), bo czemu niby system miałby zabijać wtedy proces? Może potrzebuje tak dużo pamięci?
@up: nie realloc tylko malloc, bo realloc najpierw zwalnia przydzieloną pamięć.
Tak czy inaczej próby takie jak te to dziwny sposób komunikacji, że ktoś przekroczył dostępną ilość prób logowania. Nie lepiej dodać jakiś klucz do rejestru i najzwyczajniej przy uruchomieniu odczytać go i jeśli wynosi ileś to powiedzieć sorry nie możesz się zalogować? Twój pomysł, by mieć to w RAM jest z goła nie trafiony. Wystarczy zrobić n-1 logowań oraz reset aplikacji, aby to obejść.
A co do forka, zmień avatar ciebie proszę: fork to program unixowy. Jeśli chcesz potworzyć wątki albo procesy na windowsie w google wystarczy wpisać. Nie mniej myślę, że nawet windows ma jakiś awaryjną przestrzeń, w której uruchomi usługę, która ubije program tworzący za dużą liczbę wątków. Więc co najwyżej zamulisz komuś komputer na pare chwil.