C/C++错误集锦(DEV-C++):修改数组b导致数组a也被修改

原文链接:http://www.juzicode.com/archives/3079

错误提示:

程序中定义了a、b 2个数组,修改数组b的内容影响到了数组a,这个例子中本意要将b的内容都修改为55,结果将a的内容也修改成了55:

//juzicode.com;vx:桔子code 
#include <stdio.h>
int main(void)
{
    int a[10] = {11,2,55,6,36,30,100,5,7,10};
    int b[10] = {11,2,55,6,36,30,100,5,7,10};
    int i;
    for(i=0;i<100;i++){
        b[i]=55;
    }
    for(i=0;i<10;i++){
        printf("a[%d] = %d\n",i,a[i]);	
    }
    return 0;
}

可能原因:

1、修改数组b的内容时,循环边界超过了数组b的范围,导致误改了数组a。

解决方法:

1、循环时数组b的边界要符合数组b的定义:i=0;i<10;

//juzicode.com;vx:桔子code 
#include <stdio.h>
int main(void)
{
    int a[10] = {11,2,55,6,36,30,100,5,7,10};
    int b[10] = {11,2,55,6,36,30,100,5,7,10};
    int i;
    for(i=0;i<10;i++){     //for(i=0;i<100;i++){  
        b[i]=55;
    }
    for(i=0;i<10;i++){
        printf("a[%d] = %d\n",i,a[i]);	
    }
    return 0;
}

如果本文还没有完全解决你的疑惑,你也可以在微信公众号“桔子code”后台给我留言,欢迎一起探讨交流。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注