>>81
>char の配列の最後に'\0'を入れなきゃいけないルールもないのでこれも誤り。

'\0'がないとprintf("%s\n", str) では文字列の終わりを見つけらない