strlen()在非空终止的char字符串上?

27 c

是否strlen(const char *s)s未终止时定义,如果是,它返回什么?

Hos*_*Aly 36

不,它没有定义.它可能导致内存访问冲突,因为它将一直计数,直到它到达值为0的第一个内存字节.

  • 它也可能导致恶魔飞出你的鼻子.http://catb.org/jargon/html/N/nasal-demons.html (13认同)
  • 这解释了我痛苦的鼻孔. (2认同)

MSN*_*MSN 9

从C99标准:

strlen的函数返回之前终止空字符的字符数.

如果没有空字符,则表示结果未定义.


vit*_*.ch 5

可能你需要strnlen

  • 不幸的是,这不是标准C的一部分. (5认同)