誤解がある書き込みをした自分にも問題があるので、ちゃんとまとめます。

○strcpyで落ちるのは記憶域の長さが問題ではない
○配列とポインタの違いは

char abc[2]で、
abc[0]
abc[1]
それぞれが値を変えられるのに対し、

char *abc = "ab"
だと変えられるのはポインタ変数のabcのみ。

と言いたかっただけ。ただ、記憶領域がオペレーティングシステムの
書き込み不可領域に割り当てられるかはわからない。

自分も>>474さんの発言の意味を十分理解していなかったと思います。
「strcpyで落ちるのは記憶域の長さが問題である」
と>>474さんが言いたいのかと勝手に勘違いしてしまいました。
>>474さんには謝ります。すみませんでした。