C# 将字节数组分配给二维字节数组
我想将一个字节[]分配给一个字节[],但它给出了运行时错误: 对象引用未设置为对象的实例 这是我的代码:C# 将字节数组分配给二维字节数组,c#,arrays,bytearray,variable-assignment,type-2-dimension,C#,Arrays,Bytearray,Variable Assignment,Type 2 Dimension,我想将一个字节[]分配给一个字节[],但它给出了运行时错误: 对象引用未设置为对象的实例 这是我的代码: for (int i = 0; i < NumberOfChunks; i++) { byte[][] myFile = new byte[NumberOfChunks][]; myFile[i][0] = buffer[i]; // IT STOPS HERE AND GIVES ME THE ERROR if ((i + 1) == NumberOfChun
for (int i = 0; i < NumberOfChunks; i++)
{
byte[][] myFile = new byte[NumberOfChunks][];
myFile[i][0] = buffer[i]; // IT STOPS HERE AND GIVES ME THE ERROR
if ((i + 1) == NumberOfChunks)
{
do sth....
}
}
for(int i=0;i
myFile[i][0]
为空,因为您只分配了第一个维度。在循环开始时,数组如下所示:
myFile->[null,null,null,…]
您可以通过迭代数组来分配其他维度:
byte[][] myFile = new byte[NumberOfChunks][];
for (int i = 0; i < NumberOfChunks; ++i)
{
myFile[i] = new byte[NumberOfChunks];
}
byte[][]myFile=新字节[NumberOfChunks][];
for(int i=0;i
结果将是:
myFile->[字节[],字节[],字节[]…]
所以myFile[i]
将指向字节[]
中的一个,而不是空引用
作为旁注,您可以使用2d数组
字节[,]
,以便同时分配两个维度。请注意,性能并不相同。myFile[i][0]
为空,因为您只分配了第一个维度。在循环开始时,数组如下所示:
myFile->[null,null,null,…]
您可以通过迭代数组来分配其他维度:
byte[][] myFile = new byte[NumberOfChunks][];
for (int i = 0; i < NumberOfChunks; ++i)
{
myFile[i] = new byte[NumberOfChunks];
}
byte[][]myFile=新字节[NumberOfChunks][];
for(int i=0;i
结果将是:
myFile->[字节[],字节[],字节[]…]
所以myFile[i]
将指向字节[]
中的一个,而不是空引用
作为旁注,您可以使用2d数组
字节[,]
,以便同时分配两个维度。请注意,性能并不相同。myFile[i][0]
为空,因为您只分配了第一个维度。在循环开始时,数组如下所示:
myFile->[null,null,null,…]
您可以通过迭代数组来分配其他维度:
byte[][] myFile = new byte[NumberOfChunks][];
for (int i = 0; i < NumberOfChunks; ++i)
{
myFile[i] = new byte[NumberOfChunks];
}
byte[][]myFile=新字节[NumberOfChunks][];
for(int i=0;i
结果将是:
myFile->[字节[],字节[],字节[]…]
所以myFile[i]
将指向字节[]
中的一个,而不是空引用
作为旁注,您可以使用2d数组
字节[,]
,以便同时分配两个维度。请注意,性能并不相同。myFile[i][0]
为空,因为您只分配了第一个维度。在循环开始时,数组如下所示:
myFile->[null,null,null,…]
您可以通过迭代数组来分配其他维度:
byte[][] myFile = new byte[NumberOfChunks][];
for (int i = 0; i < NumberOfChunks; ++i)
{
myFile[i] = new byte[NumberOfChunks];
}
byte[][]myFile=新字节[NumberOfChunks][];
for(int i=0;i
结果将是:
myFile->[字节[],字节[],字节[]…]
所以myFile[i]
将指向字节[]
中的一个,而不是空引用
作为旁注,您可以使用2d数组
字节[,]
,以便同时分配两个维度。请注意,性能并不相同。[]是一个数组数组,不同于[,]
所以,分配第一个维度时,您将得到可能数组的空指针数组
试试这个:
byte[][] myFile = new byte[NumberOfChunks][];
for (int i = 0; i < NumberOfChunks; i++)
{
myFile[i] = new byte[NumberOfItems];
myFile[i][0] = buffer[i]; // IT STOPS HERE AND GIVES ME THE ERROR
if ((i + 1) == NumberOfChunks)
{
do sth....
}
}
byte[][]myFile=新字节[NumberOfChunks][];
for(int i=0;i
[]]是一个数组数组,与[,]不同
所以,分配第一个维度时,您将得到可能数组的空指针数组
试试这个:
byte[][] myFile = new byte[NumberOfChunks][];
for (int i = 0; i < NumberOfChunks; i++)
{
myFile[i] = new byte[NumberOfItems];
myFile[i][0] = buffer[i]; // IT STOPS HERE AND GIVES ME THE ERROR
if ((i + 1) == NumberOfChunks)
{
do sth....
}
}
byte[][]myFile=新字节[NumberOfChunks][];
for(int i=0;i
[]]是一个数组数组,与[,]不同
所以,分配第一个维度时,您将得到可能数组的空指针数组
试试这个:
byte[][] myFile = new byte[NumberOfChunks][];
for (int i = 0; i < NumberOfChunks; i++)
{
myFile[i] = new byte[NumberOfItems];
myFile[i][0] = buffer[i]; // IT STOPS HERE AND GIVES ME THE ERROR
if ((i + 1) == NumberOfChunks)
{
do sth....
}
}
byte[][]myFile=新字节[NumberOfChunks][];
for(int i=0;i
[]]是一个数组数组,与[,]不同
所以,分配第一个维度时,您将得到可能数组的空指针数组
试试这个:
byte[][] myFile = new byte[NumberOfChunks][];
for (int i = 0; i < NumberOfChunks; i++)
{
myFile[i] = new byte[NumberOfItems];
myFile[i][0] = buffer[i]; // IT STOPS HERE AND GIVES ME THE ERROR
if ((i + 1) == NumberOfChunks)
{
do sth....
}
}
byte[][]myFile=新字节[NumberOfChunks][];
for(int i=0;i
这是一个开始,但OP误用了i
——因此上面的代码仍然是错误的。[这不是你说的重点;只是说人们不应该盲目地复制上面的内容。]我建议使用三个索引变量:iIn
逐步完成输入,iItem
逐步完成一个输出行或块的元素,以及iChunk
逐步完成块。详情留给读者。:)这是一个开始,但OP误用了i
——因此上面的代码仍然是错误的。[不是你说的重点;只是说人们应该