>>774
折れなら、関数 swap の中身は

{
  int i;
  char tmp;

  for (i=0; i<max; i++,x++,y++) {
    c = *x;
    *x = *y;
    *y = c;
  }
}

と書く。理由は、定数 max が 1000000 だったら困るから