| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5717 人关注过本帖
标题:VB6.0的数组的上界上限是多少?是整型的范围么?
只看楼主 加入收藏
小刀神
Rank: 1
等 级:新手上路
帖 子:69
专家分:5
注 册:2018-5-27
结帖率:91.67%
收藏
已结贴  问题点数:10 回复次数:14 
VB6.0的数组的上界上限是多少?是整型的范围么?
VB6.0的数组的上界上限是多少?是整型的范围么?
搜索更多相关主题的帖子: VB6.0 数组 多少 整型 范围 
2018-09-18 18:19
ZHRXJR
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:125
帖 子:1034
专家分:5519
注 册:2016-5-10
收藏
得分:1 
VB6.0的说明中说:VB6.0的数组下标的范围是 0 到 32767,应该是正整数范围,不包含负整数,整数的范围是 -32768 到 32767 。最大维数好像是60维。

[此贴子已经被作者于2018-9-18 18:59编辑过]


请不要选我!!!
2018-09-18 18:31
小刀神
Rank: 1
等 级:新手上路
帖 子:69
专家分:5
注 册:2018-5-27
收藏
得分:0 
回复 2楼 ZHRXJR
可是我在申请动态数组的时候,老是出现内存溢出,想找找问题所在……
程序代码:
Dim Commpents_Name_Style() As String
Private Sub Form_Load()
ReDim Commpents_Name_Style(1 To 30000,1 To 30000,1 To 30000) As String
End Sub

顺便问问,如何可以在不声明数组的下界和上界的情况下,申请三维数组?
2018-09-18 21:43
ZHRXJR
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:125
帖 子:1034
专家分:5519
注 册:2016-5-10
收藏
得分:2 
关于多维数组的下标,VB文档中没有提及,我使用过的三维数组的下标没有超过200,至于到底三维数组的下标是多少的确无法回答你。
刚刚测试了一下,如果是 ReDim Commpents_Name_Style(1 To 511, 1 To 511, 1 To 511) 不会溢出,大于 511 就会溢出
在声明动态数组的时候已经声明了数组的数据类型,在 ReDim 时不要再次声明数据类型了。
关于你说的:“如何可以在不声明数组的下界和上界的情况下,申请三维数组?”我认为办不到,因为数组使用前必须要声明。

另外不知道你使用这样大的三维数组是做什么用的,一般好像是 Dim AA(1 To 5, 1 To 200, 1 To 30000) As String 这样的,下标是不一样的,即就是二维数组,各维的下标也是不一样的,你的这种很特别。

请不要选我!!!
2018-09-19 09:40
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4938
专家分:30047
注 册:2008-10-15
收藏
得分:5 
好像 VB 固定大小的数组有一个 占用内存不得超过 64K 的限制。
但我测试失败,这个限制值是多少,不清楚了。
Const aMax = 2 ^ 26
Dim a(aMax) As Long
这个不报错,但 2^27 时就报错。

三维超大数组,那你想办法改成 结构吧!好像这个可以突破内存的限制。

VB6.0的数组下标的范围是 0 到 32767
这个是 控件数组的限制。

授人于鱼,不如授人于渔
早已停用QQ了
2018-09-19 13:16
小刀神
Rank: 1
等 级:新手上路
帖 子:69
专家分:5
注 册:2018-5-27
收藏
得分:0 
回复 4楼 ZHRXJR
现在设计的一个程序,最终点击了文件保存和编译的时候,方才会将数据一一输出到文件,所以,中途使用软件设计的时候,并不会自生成数据,写出文件,以致于中途设计的时候需要一些变量来存储这些临时数据,而最好的办法,便是使用三维数组,也是最为简便的方法了,而我之所以会使用如此大范围的数组,是因为我怕,存储临时数据的时候,很容易超出数组的承受范围,以至于出现程序保存的情况,所以想着尽量放大数组的范围,让程序不易出现程序报错,而数据也能够一一临时存储起来。
2018-09-19 14:07
小刀神
Rank: 1
等 级:新手上路
帖 子:69
专家分:5
注 册:2018-5-27
收藏
得分:0 
回复 5楼 风吹过b
怎么改?
2018-09-19 14:07
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:23
帖 子:1820
专家分:3681
注 册:2011-3-24
收藏
得分:2 
厉害了我的天啊,居然用到三维

结构 : 一样有64K限制
程序代码:
Private Type C
    Third() As String
End Type
Private Type B
    Second() As C
End Type
Private Type A
    First() As B
End Type
Private AA As A

不要選我當版主
2018-09-19 17:03
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:23
帖 子:1820
专家分:3681
注 册:2011-3-24
收藏
得分:0 
32723=>三维整型最大量
程序代码:
Private Type C
    Third(32723) As Integer
End Type
Private Type B
    Second As C
End Type
Private Type A
    First As B
End Type
Private AA As A


所以应该是三个()乘积需小于32723
程序代码:
Private Type C
    Third() As Integer
End Type
Private Type B
    Second() As C
End Type
Private Type A
    First() As B
End Type
Private AA As A


不过实际应用上从没用到这么大的值或资料
若真有这种需求建议改变一下程式逻辑

[此贴子已经被作者于2018-9-19 17:13编辑过]


不要選我當版主
2018-09-19 17:08
小刀神
Rank: 1
等 级:新手上路
帖 子:69
专家分:5
注 册:2018-5-27
收藏
得分:0 
回复 9楼 wube
那使用自定义数据类型可以不?用三个数组定义一个数据类型,每个数组的上界为30000,这应该没有问题了吧?
2018-09-19 18:17
快速回复:VB6.0的数组的上界上限是多少?是整型的范围么?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016450 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved