>>274
あくまでchar buf[3]="abc";はchar buf[3]={'a','b','c'};と同値であって
これは"文字"が3つ入った配列でしかない
それに対してstrlen()やstrcpy()は"文字列"を対象とした関数
だからこの結果は未定義

偶然にもbuf[3]に該当するアドレスに0x00が入っていれば
正常に機能するが、そんなことは普通は無いので
strlen(buf)=63になろうと画面から猫が飛び出そうと知ったこっちゃない