关于C的一个小疑点
关于C的一个小问题C/C++ codevoid main(){char ch[5]{0}scanf(%s,&ch)printf(%s\n,ch)printf(%d\
关于C的一个小问题
C/C++ codevoid main(){ char ch[5]={0}; scanf("%s",&ch); printf("%s\n",ch); printf("%d\n",sizeof(ch));}
输入12345678
数组空间不足,却能执行,我不知道C是怎么处理这些字符的,大家解释解释
12345678
12345678
5
Press any key to continue
输入123456789提示exe停止工作
[解决办法]未定义行为.
导致不可知的结果.
scanf的时候是碰到SPACE才结束读取.
当空间不够,就继续按指针增长的方向对齐,覆盖栈上的某些内容,
悲剧时刻发生
[解决办法]