教えてください
VisualC++2008で次のコードを書きました。
main()
{
 char buff[10];
 int i = 1;

 memset( buff, 0x00, sizeof(buff) );
 sprintf_s( buff, sizeof(buff), "%d", i );
 return;
}

ここで sprintf_s後の buff の中身を見てみると、
buff[0]='1'
buff[1]=0x00
buff[2]〜buff[9]=0xfe
‥というように、buff[2]〜buff[9]の中に謎の「0xfe」が入っていました。
なぜ0xfeが入ってしまうのでしょうか?
あと、0xfeが入らないようにする方法はありますか?