Попробуйте преобразовать RAND_MAX
в число с плавающей точкой перед добавлением к нему .
curBall->x=((float)rand()/( ((float)RAND_MAX) +1))*(ww-1) +1;
и так далее.RAND_MAX
часто равняется INT_MAX
, наибольшему значению, которое может содержать целое число, таким образом добавляя к нему 1, в то время как все еще считается, что целое число выталкивает его за предел целого числа.