c++二维vector数组赋值的问题

源码客栈 课程设计 1

建了一个二维数组(19*19):

初始化:

然后根据条件改值:

赋值语句a[i] [j].safe=1;赋值成功

但是后面四行

a[i+1] f[j+1]a.safe=1; a[i+1][j-1].safe=1; a[i-1][j+1].safe=1; a[i-1][j-1].safe=1;

却无法赋值(没有越界)

这是为什么呢,有什么解决办法吗?(我是通过vs2010调试观察里面的值来看出后四行没有成功赋值的)

回复

共2条回复 我来回复
  • 毕业设计客栈
    这个人很懒,什么都没有留下~
    评论

    没有问题,下标没有越界。直接把表格打出来就知道了。

    初始状态

    i=1,j=2 对应5个位置是有赋值的

    i=17,j=17

    0条评论
  • 源码货栈
    这个人很懒,什么都没有留下~
    评论

    越界了,for循环,j = 17 的时候满足 j <18 ;j自增1为 18,18+1 = 19,导致数组越界了

    0条评论

发表回复

登录后才能评论