1
私は、関数がuint8_t配列へのポインタを受け取るプロジェクトに取り組んでいます。私はこれの内容を、サイズがわからないunsigned charデータバッファへのポインタと比較したいと思います。私は、比較のために文字列ベースの関数を使用することを望んでいました。uint8_t配列はchar配列に似たnullで終了しますか?
したがって疑いが生じました。
私は、関数がuint8_t配列へのポインタを受け取るプロジェクトに取り組んでいます。私はこれの内容を、サイズがわからないunsigned charデータバッファへのポインタと比較したいと思います。私は、比較のために文字列ベースの関数を使用することを望んでいました。uint8_t配列はchar配列に似たnullで終了しますか?
したがって疑いが生じました。
はい。考えてみましょう:
char *str1 = "hello";
uint8_t str2[6] = "hello";
int8_t *str3 = "hello";
int result1 = strcmp(str1, (char*)str2);
int result2 = strcmp(str1, (char*)str3);
両方result1
とresult2
すなわち、すべての文字列が等価である、0
あります。
**バッファの少なくとも1つがヌルで終わるはずです(手段はC文字列です)。** **はありません。それは、あなたが知っている長さのmem ...関数を使用しない場合、str ...関数を使用する場合です。区切り文字を持つバッファがなく、長さがわからない場合は、あなたは失ってしまっています... –