Hello Folks, I made a program with a constantly recursion. It all works but at a certain moment i throws me a seg fault, but i cant figure out why. (maybe of the constantly recursion?)
recursive function
Code:
int window::move(int xposition,bool rightorleft)
{
//direction: true/right,false/left
bool direction = rightorleft;
int currentposition = xposition;
if(direction)
{
//we go right:
if(currentposition >= this->returnwindowwidth())
{
direction = false;
std::cout << "currentposition is:\t" << currentposition << "\tnext direction: Left" << std::endl;
return move(currentposition,direction);
}
else
{
direction = true;
std::cout << "currentposition is:\t" << currentposition << "\tnext direction: Right" << std::endl;
return move(currentposition+8,direction);
}
}
else
{
//we go left:
if(currentposition <= 0)
{
direction = true;
std::cout << "currentposition is:\t" << currentposition << "\tnext direction: right" << std::endl;
return move(currentposition,direction);
}
else
{
direction = false;
std::cout << "currentposition is:\t" << currentposition << "\tnext direction: Left" << std::endl;
return move(currentposition-8,direction);
}
}
}
implementationrecursive function starts when I press the button)
Code:
void window::button_clicked()
{
std::cout << "de breedte is:\t" << this->returnwindowwidth() << std::endl;
std::cout << "we are starting:\t" << "position 0, direction: right" << std::endl;
sleep(10);
move(0,true);
}
does somebody of you knows what I doing wrong?
Edit:
Language: C++
IDE: Monodevelop.
OS: Ubuntu 9.10.
thanks for your help!