null で終わらない char 文字列の strlen()?

いいえ、定義されていません。値が 0 の最初のメモリ バイトに到達するまでカウントし続けるため、メモリ アクセス違反が発生する可能性があります。


C99 標準から:

null 文字がない場合は、結果が未定義であることを意味します。


strnlen が必要ですか?