s1输入超过十个汉字或者字母,s2还是能正常输出,代码如下
#include<stdio.h>
int main()
{ int i=0;
char s1[10],s2[10];
scanf("%s",s1);
while(s1[i]!='\0'){
s2[i]=s1[i];
i++; }
s2[i]='\0';
puts(s2); }
用的软件是cfree
s1输入超过十个汉字或者字母,s2还是能正常输出,代码如下
#include<stdio.h>
int main()
{ int i=0;
char s1[10],s2[10];
scanf("%s",s1);
while(s1[i]!='\0'){
s2[i]=s1[i];
i++; }
s2[i]='\0';
puts(s2); }
用的软件是cfree
c语言数组越界是不会报错误的,多于的字符会写入到数组分配空间之后的未知空间中,
虽然可以这样但不安全。因为这个内存空间可能会分配给其它变量,当这个变量的值改变时数组也就受到影响。