数组为什么没有溢出呢?????
//将输入的小写的字母转换为相应的大写字母void change(char str[])
{
int i;
for(i=0;str!='\0';i++)
if(str>='a'&&str<='z')
str-=32;
}
int main()
{
char a;
// fgets(a,10,stdin);
gets(a);
printf("数组a=%s\n",a);
printf("数组元素a=%c\n",a);
change(a);
puts(a);
return 0;
} 本帖最后由 小鲸鱼- 于 2018-8-19 18:55 编辑
. 没有溢出,说明你很幸运
栈中,数组后面还有空间。(当然这样有可能导致未知的Bug,因为这样有可能改变到其它变量的值) 这本身就是一个bug 我之前做过测试当你的字符串超过一定的长度后就会报错 因为C 语言太信任程序员了,C认为这个应该由程序员自己限制,不是编译器的责任。因而也造成了溢出漏洞
页:
[1]