怎么用CopyMemory将一维数组的内容复制到二维数组的某一行中
如何用CopyMemory将一维数组的内容复制到二维数组的某一行中?
Dim myAry(2,5) As Byte '二维数组
Dim myThisAry() As Byte '一维数组
myThisAry = StrConv( "ABCDEF ", vbFromUnicode)
我需要把一维数组复制到二维数组的某一行中。这种说法可能不对,就是把 "ABCDEF "转换后的字节数组复制后,使二维数组变成类似以下:
myAry(1,0)=65
myAry(1,1)=66
myAry(1,2)=67
myAry(1,3)=68
myAry(1,4)=69
myAry(1,5)=70
数组很大,不想用循环,可是CopyMemory 之后,似乎一维数组的内容被平均分配给二维数组的每一行了。
我的用法是:
CopyMemory myAry(1, 0), myThisAry(0), 6
从myThisAry的第一个元素开始复制6位,更新myAry第一维下标是1这一行的,从第一个元素开始的6个元素(这些话该怎么说才标准呢?)
应该怎样用CopyMemory 才对呢?
------解决方案--------------------
两者的行列不相同。
------解决方案--------------------
这个和内存的存储有关系
C语言中是按行存储,而VB里面是按列存储数据的
所以基本上涉及多维数组就要用循环了
C; A[2,2]
A[0,0],A[0,1],A[1,0],A[1,1]
VB:A(1,1)
A(0,0),A(1,0),A(0,1),A(1,1),
------解决方案--------------------
CopyMemory ByVal VarPtr(myAry(1, 0)), ByVal VarPtr(myThisAry(0)), 6
能行不...怎么排列的我是不知道啊。LZ试试
Dim myAry(2,5) As Byte '二维数组
Dim myThisAry() As Byte '一维数组
myThisAry = StrConv( "ABCDEF ", vbFromUnicode)
我需要把一维数组复制到二维数组的某一行中。这种说法可能不对,就是把 "ABCDEF "转换后的字节数组复制后,使二维数组变成类似以下:
myAry(1,0)=65
myAry(1,1)=66
myAry(1,2)=67
myAry(1,3)=68
myAry(1,4)=69
myAry(1,5)=70
数组很大,不想用循环,可是CopyMemory 之后,似乎一维数组的内容被平均分配给二维数组的每一行了。
我的用法是:
CopyMemory myAry(1, 0), myThisAry(0), 6
从myThisAry的第一个元素开始复制6位,更新myAry第一维下标是1这一行的,从第一个元素开始的6个元素(这些话该怎么说才标准呢?)
应该怎样用CopyMemory 才对呢?
------解决方案--------------------
两者的行列不相同。
------解决方案--------------------
这个和内存的存储有关系
C语言中是按行存储,而VB里面是按列存储数据的
所以基本上涉及多维数组就要用循环了
C; A[2,2]
A[0,0],A[0,1],A[1,0],A[1,1]
VB:A(1,1)
A(0,0),A(1,0),A(0,1),A(1,1),
------解决方案--------------------
CopyMemory ByVal VarPtr(myAry(1, 0)), ByVal VarPtr(myThisAry(0)), 6
能行不...怎么排列的我是不知道啊。LZ试试