VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)

VB爱好者乐园(VBGood)

 找回密码
 立即注册
搜索
查看: 593|回复: 1

[求助] VB6内存溢出

[复制链接]

6

主题

0

听众

196

积分

初级程序员

Rank: 2Rank: 2

擂点
0
人气
0
威望
0
注册时间
2009-9-27
精华
0
帖子
23
发表于 2017-2-5 11:09:46 |显示全部楼层
定义二维数组,提示内存溢出,求解!!!
  1. Private Type ExtData
  2.     Date            As Long
  3.     Rec(1 To 13)    As Single
  4. End Type
  5. Private ExtRec()     As ExtData

  6. Private Sub Form_Load()
  7.     ReDim ExtRec(4096, 1895) As ExtData
  8. End Sub
复制代码

26

主题

10

听众

4万

积分

版主

Rank: 7Rank: 7Rank: 7

擂点
0
人气
363
威望
623
注册时间
2008-12-20
精华
0
帖子
4111
发表于 2017-2-5 20:08:01 |显示全部楼层
本帖最后由 zdingyun 于 2017-2-5 20:25 编辑

从LZ申明的多维数组的总元素超过了所能承受的范围。
注意 在增加数组的维数时,数组所占的存储空间会大幅度增加,所以要慎用多维数组。使用 Variant 数组时更要格外小心,因为他们需要更大的存储空间。
溢出(错误 6),当赋值超出目标的限制时,就会发生溢出。此错误有以下的原因和解决方法:
赋值、计算或数据类型的结果的转换太大,以致于不能在变量类型所允许的范围内表示出来。
赋值给足够表示值的范围的类型的变量上。
给属性的赋值超过属性能接受的最大值。
确保赋值适合属性的范围。

试图在计算中使用一个数字,并且该数字被强制为一个整数,但是结果超过了整数的范围,例如:
    Dim x As Long
    x = 2000 * 365   ' 错误: 溢出
要解决这个问题,请按如下方式键入该数字:

    Dim x As Long
    x = CLng(2000) * 365
详细信息,可选取有问题的项目,并按下 F1 键。
LZ的第二维上标选1171,尚能不出现溢出。
  1. Private Type ExtData
  2.     Date            As Long
  3.     Rec(1 To 13)    As Single
  4. End Type
  5. Private ExtRec()     As ExtData

  6. Private Sub Form_Load()
  7.     ReDim ExtRec(4096, 1711) As ExtData
  8. End Sub
复制代码
LZ自定义结构需占用内存436305920字节,即437M左右。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

文字版|手机版|VBGood

GMT+8, 2017-3-29 03:38

VB爱好者乐园(VBGood)
回顶部