Aktywne Wpisy

DzikiWonsz221 +69
#przegryw jak za @qew12 nie przepadam bo to oskarek zwykły co się z koleżaneczkami spotyka tak to co sie stalo pod jego wpisem dobrze obnaza i pokazuje obraz normictwa
chuop se wkleil linki do badan ze autysci maja ciezko to najazd na niego zrobili i on tylko wymysla a tak w ogole to syn kolezanko mojej mamy ma autyzm i jest lekarzem w serialu
Kumacie to? Normiki chlopu ze stwierdzona choroba ktora
chuop se wkleil linki do badan ze autysci maja ciezko to najazd na niego zrobili i on tylko wymysla a tak w ogole to syn kolezanko mojej mamy ma autyzm i jest lekarzem w serialu
Kumacie to? Normiki chlopu ze stwierdzona choroba ktora
źródło: 1
Pobierz
AspoleczneUfo +68
A tak szczerze, mówię jako kibic BvB, ale obserwuje to od wielu lat już. Jak w ogóle można kibicować Realowi? W sensie jest to klub najbardziej utytułowany w historii, okej, ale to jest kibicowanie na takiej zasadzie "Wybieramy tych co wygrywają i im kibicujemy". Dodatkowo klub pełen chamstwa, którego legendy są żegnane jak szmaty (Casillas, Ronaldo), a zawodnicy zachowują się jak absolutne zwierzęta (Vinicius, Carvajal i kiedyś ten małpiszon najgorszy Casemiro). Wyjaśnij





Nie mam pojecia jak sie do tego zabrac, domyslam sie, ze trzeba kombinowac cos z rekurencja. Pomozecie?
#cpp #programowanie
Tak, rekurencja moƶe Ci przepełnić stos, ale musisz wziąć pod uwagę wielkość ramki, która moƶe się zmieniać w zaleƶności od kompilatora i flag kompilacji. Ponadto przepełnienie stosu wywali Ci program, nie będziesz mógł wypisać komunikatu błędu (przynajmniej nie za pomocą narzędzi dostępnych w standardowym C++, coś system-specific będziesz
@Vetinari: ooo, to brzmi dobrze, dzieki wielkie, poczytam i w razie co bede wolal, ok?
#include /* standardowe funkcje UNIXowe, takie jak getpid() /
#include / różne typy definicji, jak np. pid_t */
#include /* nazwy sygnałów, makra i prototyp funkcji kill() */
#include
int f();
int g();
int g()
{
f();
catchod łapania wyjątków.
http://linux.die.net/man/2/signal
kurcze poprawilem wedlug Twoich wskazowek (przynajmniej tak mi sie wydaje), ale dalej nie dziala :(
'#include /* standardowe funkcje UNIXowe, takie jak getpid() /
#include / różne typy definicji, jak np. pid_t */
#include /* nazwy sygnałów, makra i prototyp funkcji kill() */
#include
void wypisz(int signum) //to jest moj signal hanler
{
signal(SIGSEGV,wypisz);
std::cout<<" przepelnilo sie ";
std::cout<
}
int f();
int g();
int g()
{
f();
}
Okej troche pokombinowalem i wynik jest taki: jezeli wywoluje z maina void kupa(); to dziala, tzn, przechwytuje sygnal, a jezeli f(); to nie przechwytuje.
Macie pomysl dlaczego tak jest?
'#include /* standard I/O functions /
#include / standard unix functions, like getpid() /
#include / signal name macros, and the signal() prototype /
#include
/ first, here is the signal handler /
void wypisz(int signum)
- stos w x86 sie dekrementuje jak sie cos wsadza na niego
- jak wolasz funkcje to jest uzywany po ludzku PUSH, czyli przesuwa sie ESP, jak piszesz poza stos (tak jak w kupa()), to po prostu tam piszesz, ESP w dalszym ciagu wskazuje na poprawny obszar stosu
kupa() jest mi do niczego nie potrzebna, zalezy mi na dzialaniu f();
Wydaje mi sie, ze tylko rekurencja moge rozwiazac to zadanie.
Przypominam tresc, zebys nie musial scrollowac:
"Mikrobki musze napisac funkcje void stack() ktora bedzie powodowala przepelnienie sie stosu i w momencie gdy do tego dojdzie, program bedzie przerywany, a na ekranie zostanie wypisany stosowny komunikat (wewnatrz programu, nie przez kompilator). Main() ma
moglbys przyblizyc jak to ma wygladac?
@erwit: Niczego nie przesuwa, po prostu piszesz poza obszar stosu. Abstrakcyjnie to dziala tak: masz sobie jakis fragment pamieci przydzielonej na stos, powiedzmy, ze jest on pomiedzy adresami 100 a 200, potem masz "zmienna", o nazwie ESP i poczatkowo ma ona wartosc 200. Jak wolasz funkcje to wrzucasz rozne rzeczy na stos, tzn:
- zapisujesz swoja wartosc pod adresem z ESP (200)
- dekrementujesz ESP