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
悬赏问题
- ¥20 机器学习能否像多层线性模型一样处理嵌套数据
- ¥20 西门子S7-Graph,S7-300,梯形图
- ¥50 用易语言http 访问不了网页
- ¥50 safari浏览器fetch提交数据后数据丢失问题
- ¥15 matlab不知道怎么改,求解答!!
- ¥15 永磁直线电机的电流环pi调不出来
- ¥15 用stata实现聚类的代码
- ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
- ¥20 docker里部署springboot项目,访问不到扬声器
- ¥15 netty整合springboot之后自动重连失效