0

次のような配列を宣言するために、4 バイト長のデバイスからデータを読み取る必要があります。

char data[4] = {0};

これをインデックスごとに解析し、インデックス 3 で停止することを保証します。

データ[0]..データ[3]

この場合、NUL('\0') の余地はありません。

これが安全と見なされるか、または配列を次のように宣言する必要があるかを知りたい

char data[5] = {0};

この配列は、str* シリーズの関数では使用されません。

4

3 に答える 3

3

読み取るデータがバイトの文字列である4場合、またはそれがバイトよりも大きく、文字列の代わりに文字配列として4使用している場合、心配する必要はありません。charそれ以外の場合は、気にする必要があります'\0'

于 2016-03-07T08:55:51.773 に答える
1

、またはそのデータの指定子などの文字列を処理する関数を使用char data[4];しない場合は、4 バイト データの使用は安全です。strcmp()strlen()%sprintf()

于 2016-03-07T08:55:26.027 に答える