数组越界修改应该有什么规律
总觉得这个东西可以利用起来
如下几个东西:
#include<bits/stdc++.h>
using namespace std;
int a[10],b[10],c[10];
int main()
{
int i;
for(i=10;i<21;i++)
a[i]=1;
for(i=0;i<=9;i++)
printf("%d ",a[i]);
printf("\n");
for(i=0;i<=9;i++)
printf("%d ",c[i]);
printf("\n");
for(i=0;i<=9;i++)
printf("%d ",b[i]);
return 0;
}
结果:
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0 0 0
可以看到由于越界修改了b数组
然后是这个:
#include<bits/stdc++.h>
using namespace std;
int a[10],c[10],b[10];
int main()
{
int i;
for(i=10;i<21;i++)
a[i]=1;
for(i=0;i<=9;i++)
printf("%d ",a[i]);
printf("\n");
for(i=0;i<=9;i++)
printf("%d ",c[i]);
printf("\n");
for(i=0;i<=9;i++)
printf("%d ",b[i]);
return 0;
}
结果:
0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
和最初地址分配顺序有关