求解,为什么字符串变量s1不能被赋值?
不太理解为什么。
不太理解为什么。
2019-02-15
你的代码存在两个漏洞:
首先,c语言中字符串不能用等号赋值,需要用strcpy;
其次,strcat需要第一个参数有足够的空间,不然会导致内存溢出(s2的空间正好只能放下“我爱,”加一个‘\n’字符,具体占几个字节视编译器的编码而定,反正是没有多余的空间的)。
正确代码(不唯一):
#include<stdio.h>
#include<string.h>
int main(){
char s1[100]="";
char s2[]="我爱,";
char s3[]="慕课网";
strcat(s1, s2);
strcat(s1, s3);
printf("%s\n",s1);
return 0;
}举报