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”,欢迎后台留言撩我,我会尽我所能为你解惑Python,C等编程知识

发表评论

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