伝統的にはこうで、速度も速い。
void fill(int *ptr, int n, int val)
{
 for (int i = 0; i < n; i++) {
  *ptr++ = val;
 }
}

さらに、以下のように書くほうが速い。
void fill(int *top, int n, int val)
{
 int *ptr = top;
 for (int i = n; i > 0; --i) {
  *ptr++ = val;
 }
}