strcat失败的可能性?

Jay*_*Jay 1 c

strcat有可能失败吗?

如果我们传递一些不正确的缓冲区或字符串,那么它可能会导致内存损坏.但是,除此之外,即使传递的目标字符串是非NULL,此函数也可能返回失败,就像strcat返回NULL一样?如果不是,为什么strcat具有指定的返回类型?

我刚刚提到过strcat作为例子.但是,这个问题适用于许多字符串和内存相关(如memcpy等)函数.我只是想知道其中一些看似"总是成功"的函数背后的原因有返回类型.

Ada*_*iss 10

返回指向目标字符串的指针可以很容易地以这种(可能不那么聪明)的方式使用输出:

int len = strlen(strcat(firstString, secondString));
Run Code Online (Sandbox Code Playgroud)

  • 也是`strcat(strcat(第一,第二),第三);`. (2认同)