【发布时间】:2020-09-07 16:04:09
【问题描述】:
为什么下面的代码会导致分段错误?
#include<studio.h>
#include<string.h>
int main ()
{
char *name="Kaveri";
char *rd="Rajshekhar";
strcat(name,rd);
puts(name);
return 0;
}
【问题讨论】:
-
请不要添加无关标签。
-
您尝试写入被字符串文字占用的内存;并有一个缓冲区溢出来启动。该程序表现出未定义的行为。
strcat的第一个参数预期指向一个足够大的可写缓冲区以容纳两个字符串的连接;您的缓冲区既不可写也不够大。
标签: c pointers segmentation-fault strcat