高手帮忙看看啊,动态声明二维数组的问题

wuwuheihei 2003-10-09 02:30:47
请问各位高手:我的二维数组的第一维时逐个增加的,第二维是固定的,比如:
Dim arr() As String
Dim i As Integer
i = 0
For i = 0 To 2
ReDim Preserve arr(i, 1)
arr(i, 0) = "11"
Next
走第一遍时是对的,第二遍就报数组超出范围
为什么阿?
谢拉
...全文
67 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
海牛 2003-10-09
  • 打赏
  • 举报
回复
Private Type MyType
strArr() As String
End Type

Dim arr() As MyType
Dim i As Integer
i = 0
For i = 0 To 2
ReDim Preserve arr(i) As MyType
ReDim Preserve arr(i).strArr(100) As String
arr(i).strArr(0) = "11"
arr(i).strArr(1) = "12"
arr(i).strArr(2) = "13"
·
·
·
Next
northwolves 2003-10-09
  • 打赏
  • 举报
回复
行列互换就可以了。
射天狼 2003-10-09
  • 打赏
  • 举报
回复
用一维数组,不有STRING类型,用自定义结构吧!!
wuwuheihei 2003-10-09
  • 打赏
  • 举报
回复
那怎么办啊,谁能告诉我啊
脆皮大雪糕 2003-10-09
  • 打赏
  • 举报
回复
如果使用了 Preserve 关键字,就只能重定义数组最末维的大小,且根本不能改变维数的数目。例如,如果数组就是一维的,则可以重定义该维的大小,因为它是最末维,也是仅有的一维。不过,如果数组是二维或更多维时,则只有改变其最末维才能同时仍保留数组中的内容。下面的示例介绍了如何在为已有的动态数组增加其最末维大小的同时而不清除其中所含的任何数据。

ReDim X(10, 10, 10)
. . .
ReDim Preserve X(10, 10, 15)

同样地,在使用 Preserve 时,只能通过改变上界来改变数组的大小;改变下界则会导致错误。

如果将数组改小,则被删除的元素中的数据就会丢失。如果按地址将数组传递给某个过程,那么不要在该过程内重定义该数组的各维的大小。

7,759

社区成员

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

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