c#索引超出数组界限,定义了一个数组,读完了以后设置了一个for循环,然后提示我索引超出数组界限
byte[4] bt0=new byte[4];
byte[4]bt1=new byte[4];
bt0=bread.readbytes(4);
for(int i=0,j=3;i<4;i++,j--)
{
bt1[j]=bt0[i];
}
c#索引超出数组界限
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
5条回答 默认 最新
- CSDN专家-showbo 2022-07-05 12:01关注
bread是什么对象。可能越界的bt0的操作,应该是数据量不够4个。直接用Array.Reverse反转数组就行,没必要for也就不会出现越界错误,比如下面这样
using System; namespace demo { class Program { static void Main(string[] args) { byte[] bt0 =new byte[4] { 0, 1, 2, 3 };// bread.readbytes(4) byte[] bt1 = new byte[4]; bt0.CopyTo(bt1, 0); Array.Reverse(bt1); Console.WriteLine(string.Join(",", bt0)); Console.WriteLine(string.Join(",", bt1)); Console.ReadKey(); } } }
一定要for改成下面这样,以bt0,bt1最大长度作为界限防止越界错误
for (int i = 0, j = 3,k= Math.Min(bt0.Length, bt1.Length); i < k; i++, j--) { bt1[j] = bt0[i]; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用 1
悬赏问题
- ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
- ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
- ¥15 gdf格式的脑电数据如何处理matlab
- ¥20 重新写的代码替换了之后运行hbuliderx就这样了
- ¥100 监控抖音用户作品更新可以微信公众号提醒
- ¥15 UE5 如何可以不渲染HDRIBackdrop背景
- ¥70 2048小游戏毕设项目
- ¥20 mysql架构,按照姓名分表
- ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分
- ¥15 delphi webbrowser组件网页下拉菜单自动选择问题