関数strncpyについて質問です。
昨日も質問しましたが・・・
自分でこんなプログラムを作ってみました。

#include<stdio.h>
#include<string.h>

int main(){
char *s1="abcd";
char *s2="ABCDEF";
int n;

for(n=3; n<=10; n++){
strncpy(s1, s2, n);
printf("s1 = %s\n", s1);
}
return 0;
}

この実行結果は
s1 = ABCd
s1 = ABCD
s1 = ABCDEABCDEF
s1 = ABCDEFBCDEF
s1 = FBCDEF
s1 = F
s1 =
s1 =
となります。
実行結果の3つ目のs1以降がなぜそうなるのかわかりません。
教えてください。