char s[4] = "ABC";
は問題無いと思いますが
char s[4] = "ABCD";
とすると警告出ないのですが
最後の'\0'は無視されるのですか?
それとも意図しない領域に描き込まれているのですか?