code
#include <stdio.h>
#include <string.h>
int main(){
char *str=NULL;
strcat(str,"litong");
printf("%s\n",str);
return 0;
}
运行出现错误
Segmentation fault (core dumped)
修改成下面的代码
#include <stdio.h>
#include <string.h>
int main(){
char *str="litong";
printf("%s\n",str);
return 0;
}
运行输出正常,
为什么strcat之后会出现Segmentation fault (core dumped)
调用
strcat
必须保证目标地址有足够的已分配的内存用于存储结果。通常需要用malloc
提前分配内存,定义一个足够大的char[]
。你的两个例子都没有做到这一点。