我知道我的数组出现了栈溢出
但是每次输入的时候数值远比数组的小,
网上说把数组变大,但还是不好使
下面是我的代码
int main()
char a[80] = { 0 }, b[80] = { 0 }, c[80] = { 0 };
int i, j=0, k=0, m=0;
scanf("%s", &a[80]);
scanf("%s", &b[80]);
scanf("%s", &c[80]);
for (i = 0; i < 80; i++)
{
if (b[i] == 0)
break;
if (b[i] > 'A' && b[i] < 'Z')
k++;
}
for (i = 0; i < 80; i++)
{
if (a[i] == 0)
break;
if (a[i] > 'A' && a[i] < 'Z')
j++;
}
for (i = 0; i < 80; i++)
{
if (c[i] == 0)
break;
if (c[i] > 'A' && c[i] < 'Z')
m++;
}
printf("%d %d %d", j, k, m);
return 0;
}
报错:
Run-Time Check Failure #2 - Stack around the variable 'a' was corrupted.
sacnf(格式,地址),数组名就是指针(地址),不需要取址
改成:
scanf("%s", a);
scanf("%s", b);
scanf("%s", c);