私が理解しているように、関数char *strstr(const char *s1, const char *s2);
はヌル終了文字列 s1 でヌル終了文字列 s2 を検索します。
たとえば、null で終了する文字列 s2 を渡しますが、s1 として渡されるバッファーは null で終了しません。このような場合、文字列 s2 が s1 に存在しない場合はどうなりますか? 関数 strstr は、s1 の開始アドレスから '\0' が見つかるまで、s2 を検索し続けます。しかし、まったく見つからないとしましょう'\0'
。保護された、または禁止されたメモリ領域にアクセスしてクラッシュしますか?
これが未定義の動作であることはわかっていますが、あなたの経験に基づいて、何が問題になる可能性がありますか?