No, you need to scale it either by yourself (linear interpolation is the easiest and fastest but gives square shaped pixels, bilinear/trilinear/bicubic are trickiers but give smoother results), or by using a library that will do the dirty work for you (check OpenCV, SDL, imagemagick, libpipi, etc.)
More on this here, here.
Actual code for a simple nearest neighbor interpolation (unoptimized) :
dest[dx+dy*dest_width] = src[(dx*src_width/dest_width)+(dy*src_height/dest_height)*src_width]
Just iterate dx and dy according to the dest_width and dest_height. But really, use a library for this.