After a bit of playing with code, it turns out that the problem is caused by getGObjectAt. It doesn't return a pointer to your paddle even though it's in the specified location. Rather, it returns NULL. Below is a short program that verifies that
One thing that had me for a bit was my functions for instantiating the paddle and the ball.
since we have to program movement inside of main we want ball and paddle exist inside of that function.
make sure your initPaddle and initBall RETURN paddle and ball respectively.
That might help with some of the issues you are having with movement.