问答详情
源自:6-8 字符串函数

C语言入门6-8

strcat在使用时s1与s2指的内存空间不能重叠。

什么叫内存空间不能重叠?


提问者:折纸丶残痕 2017-05-18 12:30

个回答

  • 许山山丶
    2017-05-18 15:30:17
    已采纳

    把内存理解成一个一维数组,例如在内存地址编号为1-5存放着字符串s:“abcd\0”,s1和s2都是对字符串s的引用,那么s1和s2的内存空间就是重叠的(它们有着相同的入口,内存地址编号1,“a”;相同的结束位置,内存地址编号5,“\0”).

    \\ strcat 的函数声明
    char *strcat(char *dest, const char *src)
    \\ strcat 的作用是把 src 所指向的字符串追加到 dest 所指向的字符串的结尾。

    关于为什么不能重叠可以看这个问题怎样理解“strcat在使用时s1与s2指的内存空间不能重叠”