VB.NET数组下标问题 惊现某博文重大错误

本文通过俄罗斯方块游戏代码调试中的实例,详细解释了数组边界的重要性,并纠正了常见误区,即数组声明时的维度实际包含了比指定数字多一个的空间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

相信,用数组的人对边界这个东西一定很敏感。

今天在调试俄罗斯方块的代码的时候,出现很奇怪的错误,消行之后底板出现问题

后来调试下一看,是数组边界的问题:

    Public Const BD_W_BOXES = 8
    Public Const BD_H_BOXES = 12
    Dim BdState(BD_W_BOXES, BD_H_BOXES) As Boolean

这里的BdState数组括号里的数字其实是下标的最大值,实际上内存中该数组占用9*13=117


同样是在优快云里有一篇文章写道:

例如:

  1. //声明一个一维数组具有3个元素,下标从0~2  
  2. Dim arrayl(3)As Integer  
  3. arrayl(0):2  
  4. arrayl(1)=4  
  5. arrayl(2)=8 

实际上下标应该是0~3


如果有争议,欢迎留言,我们进一步探讨

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值