Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
次のような配列を宣言するために、4 バイト長のデバイスからデータを読み取る必要があります。
char data[4] = {0};
これをインデックスごとに解析し、インデックス 3 で停止することを保証します。
データ[0]..データ[3]
この場合、NUL('\0') の余地はありません。
これが安全と見なされるか、または配列を次のように宣言する必要があるかを知りたい
char data[5] = {0};
この配列は、str* シリーズの関数では使用されません。
読み取るデータがバイトの文字列である4場合、またはそれがバイトよりも大きく、文字列の代わりに文字配列として4使用している場合、心配する必要はありません。charそれ以外の場合は、気にする必要があります'\0'。
4
char
'\0'
、またはそのデータの指定子などの文字列を処理する関数を使用char data[4];しない場合は、4 バイト データの使用は安全です。strcmp()strlen()%sprintf()
char data[4];
strcmp()
strlen()
%s
printf()