>>302
例えば int が 4 バイトの環境で
  (int *)s->stk + s->ptr * s->sz
としてしまうと、コピー先のアドレスが
  「s->stk の値」+「int のサイズ」×「s->ptr * s->sz」
になるので拙い。