taki fragment main:
Kod: Zaznacz cały
struct timeval w1, w2;
for (;;) {
if (SDL_PollEvent(&event)) {
if (event.type == SDL_QUIT || event.type == SDL_KEYDOWN) {
return 0;
}
}
if (!(tick % 20)) {
funkcja(d1, d2, time(), 5);
}
tick++;
SDL_Delay(50);
}
Kod: Zaznacz cały
int funkcja(struktura a, struktura b, Uint32 c, Uint8 d) {
return 1;
}
1) usunąć wywołanie funkcji (co jest w sumie dziwne bo ona jak widać jedynie zwraca 1)
2) usunąć warunek "if (!(tick % 20))" oczywiście z odpowiednimi klamrami (czyli inaczej mówiąc funkcja jest wywoływana 20 razy częściej),
3) usunąć z kodu zmienną w2
i błąd segmentacji znika... ma ktoś jakąś ideę co może tu zawinić??
Dam sobie radę inaczej w kodzie - zresztą w1 i w2 miały mi tylko pomóc przetestować czas wykonania pewnego fragmentu kodu, więc w ostatecznej wersji są zbyteczne - ale ciekaw jestem co może być przyczyną takiego zachowania. Problem powstał właśnie gdy dodałem w2. Jeśli ktoś podejrzewa, że przyczyna może leżeć w innym fragmencie kodu to ew. zamieszczę.