質問: '\0'; //それとも要素すべてにヌル終端する? memset(str, '\0', sizeof(str)); ```
回答: 原則としては ``` memset(str, '\0', sizeof(str)); ``` だと思います。 C言語は言語として文字列型をサポートしていませんので、 char str[31+1] が後でどのように使用されるかはわかりません。 (プログラムを書く人しだいです。) ですので、あくまでも「要素数31+1の char 型配列の初期化」と考えるべきだと思います。 「原則としては」と書きましたが、 スピードを重視するプログラムや配列がとても大きい場合など、 状況に応じてリスクを覚悟したうえで細心の注意を払ってコーディングする前提で、 初期化しなかったり、簡易な初期化で済ますことはあると思いますが、それは例外と考えるべきでしょう。