据我了解,该函数char *strstr(const char *s1, const char *s2);
在以空字符结尾的字符串 s1 中搜索以空字符结尾的字符串 s2。
假设我传递了一个以空结尾的字符串 s2,但是作为 s1 传递的缓冲区不是以空结尾的,如果字符串 s2 不存在于 s1 中会发生什么情况?函数 strstr 将从 s1 的起始地址开始继续搜索 s2,直到找到一些 '\0'。但是,假设它根本找不到'\0'
?它会访问一些受保护或禁止的内存区域并崩溃吗?
我知道这是一种未定义的行为,但根据您的经验,可能是什么问题?