是否strlen(const char *s)在s未终止时定义,如果是,它返回什么?
strlen(const char *s)
s
不,它没有定义.它可能导致内存访问冲突,因为它将一直计数,直到它到达值为0的第一个内存字节.
从C99标准:
该strlen的函数返回之前终止空字符的字符数.
如果没有空字符,则表示结果未定义.
可能你需要strnlen?