a为空啊
你的问题jackz007大神已经解释了 正天圣人 发表于 2022-10-6 21:49
a为空啊
你是幸运,未初始化的a='\0' jhq999 发表于 2022-10-6 21:52
你的问题jackz007大神已经解释了
刚刚我这里不显示。。。。 jackz007 发表于 2022-10-6 21:20
这样处理:
大佬,我不是要正确答案啊,我想知道为什么我在运行
printf("请输入一行文本:");
while(b!='\n')
{
scanf("%s",a1);
strcat(a,a1);
b=getchar();
if(b==' ')
{
c=1;
strcat(a," ");
}
}
中的strcat(a,a1);和strcat(a," ");的时候,我的c和d的值为什么会变化 jhq999 发表于 2022-10-6 21:54
你是幸运,未初始化的a='\0'
我上个代码也是这样写的,结果一样的 正天圣人 发表于 2022-10-6 21:57
大佬,我不是要正确答案啊,我想知道为什么我在运行
printf("请输入一行文本:");
whi ...
因为在执行 strcat(a , a1) 的时候,如果发生 a[] 越界,那么,越出部分的字符就会侵占相邻变量的存储空间,导致相关变量的数值发生非预期改变,这就是数组越界带来的危害,是我们写代码第一个要避免出现的问题。 正天圣人 发表于 2022-10-6 21:58
我上个代码也是这样写的,结果一样的
越界了把变量c、d的内存覆盖了 jackz007 发表于 2022-10-6 22:07
因为在执行 strcat(a , a1) 的时候,如果发生 a[] 越界,那么,越出部分的字符就会侵占相邻变 ...
谢谢大佬,我明白了 jhq999 发表于 2022-10-6 22:08
越界了把变量c、d的内存覆盖了
谢谢大佬,我明白了
页:
1
[2]