如何用CopyMemory将一维数组的内容复制到二维数组的某一行中?

xuyang0109 2007-02-28 09:01:16

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 才对呢?
...全文
777 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
清晨曦月 2007-03-01
  • 打赏
  • 举报
回复


CopyMemory ByVal VarPtr(myAry(1, 0)), ByVal VarPtr(myThisAry(0)), 6

能行不...怎么排列的我是不知道啊。LZ试试
xuyang0109 2007-03-01
  • 打赏
  • 举报
回复
不行啊!还是被平分了。
如果存储的方式不一样,看来没有办法只能用幼稚的循环了,一层套一层的那种。很郁闷。
ZOU_SEAFARER 2007-03-01
  • 打赏
  • 举报
回复
这个和内存的存储有关系
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),
xuyang0109 2007-02-28
  • 打赏
  • 举报
回复
就是说不可能吗?只能用循环?
cangwu_lee 2007-02-28
  • 打赏
  • 举报
回复
两者的行列不相同。

1,488

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧