读书人

怎么用CopyMemory将一维数组的内容复制

发布时间: 2012-02-04 15:43:09 作者: rapoo

如何用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试试

读书人网 >VB

热点推荐