Generally speaking, I would first ask what is your development environment? What debugging tools are available to you?
The most telling things to look at are variable values during execution: are they what you think they should be? Any good debugger should give you variable values during execution. I'm pretty sure gdb can do that, as well as Visual Studio. Probably others like Eclipse, Code::Blocks, etc., do the same.