VB结构体数组定义

时间:2020-12-22 14:01:43
我在程序中用到结构体:当结构体里面的数组都是一维时,我在结构体里面定义都没有定义维数:比如:
Public Type O_Data
    data() As ObsVal
    ComSateRS() As XYZRS
End Type
Public obs_data() As O_Data

Public Type PointPosition
    x As Double
End Type
Public Poi_P() As PointPosition

里面第一没有定义obs_data(),Poi_P()维数,结果可以运行。
 但现在我定义了结构体二维数组,不加维数就不能运行。如下:
Public Type LDLfenjie
  L(3, 3) As Double
  D(3, 3) As Double
End Type
Public LDL() As LDLfenjie
显示越界 为什么呢?当改成Public LDL(100) As LDLfenjie 时可以运行到下一步。
为什么上面可以不定维 下面的不行呢?而程序里维数是不确定的。。。
另外有没有好的方法不在结构体里面确定L D的维数,因为L D的维数是字母,但又不能写在定义里面L(n,n)
怎么解决呢?

5 个解决方案

#1


设置最大维数,记录实际维数。

#2


该回复于2012-07-18 14:33:58被版主删除

#3


引用楼主  的回复:
我在程序中用到结构体:当结构体里面的数组都是一维时,我在结构体里面定义都没有定义维数:比如:
Public Type O_Data
  data() As ObsVal
  ComSateRS() As XYZRS
End Type
Public obs_data() As O_Data

Public Type PointPosition
  x As Double
End T……


问题1是什么情况呢?为什么上面的没有设置维数可以运行,下面的没有设置维数就不能运行了?

#4


不使用结构体呗,用一个类对象把这些封装起来,做一个结构类~。结构体用的人真的不多,还用到像你那么麻烦中的麻烦的,更是少之又少,所以还真没研究过。

#5


Public Type LDLfenjie
   L(3, 3) As Double
   D(3, 3) As Double
End Type
Public LDL() As LDLfenjie
试了没有显示越界,如果不行试着把二维转为一维用

#1


设置最大维数,记录实际维数。

#2


该回复于2012-07-18 14:33:58被版主删除

#3


引用楼主  的回复:
我在程序中用到结构体:当结构体里面的数组都是一维时,我在结构体里面定义都没有定义维数:比如:
Public Type O_Data
  data() As ObsVal
  ComSateRS() As XYZRS
End Type
Public obs_data() As O_Data

Public Type PointPosition
  x As Double
End T……


问题1是什么情况呢?为什么上面的没有设置维数可以运行,下面的没有设置维数就不能运行了?

#4


不使用结构体呗,用一个类对象把这些封装起来,做一个结构类~。结构体用的人真的不多,还用到像你那么麻烦中的麻烦的,更是少之又少,所以还真没研究过。

#5


Public Type LDLfenjie
   L(3, 3) As Double
   D(3, 3) As Double
End Type
Public LDL() As LDLfenjie
试了没有显示越界,如果不行试着把二维转为一维用