`
eimhee
  • 浏览: 2115712 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

能否判断动态数组有没有被分配过?

VB 
阅读更多

       动态数组在VB语言中常能起到出奇制胜的作用。但数组有没有被重新定义或释放,用“is empty”,“is null”,“=" "”等方法都不起作用。所以判断时一般采用侦别错误消息(ON ERROR )的方法。下面给出一个非错误侦别的代码,判断动态字符串数组的分配情况:

 

Private Sub Command1_Click()
Dim a() As String, i As Long


MsgBox hasredim(a), 64, "Has a() been redimed?"   '未初始化


ReDim a(20)

For i = 1 To 20
a(i) = chr(i+64)

Next

MsgBox hasredim(a), 64, "Has a() been redimed?"     '初始化后


Erase a    '释放空间后
MsgBox hasredim(a), 64, "Has a() been redimed?"   


End Sub

 


Function hasredim(ByRef x() As String) As Boolean  '定义布尔函数
Dim temp As String
temp = Join(x, ",")
hasredim = LenB(temp) > 0 '空数组长度为零
End Function

分享到:
评论

相关推荐

    【03-流程控制与数组】

    •对于基本类型数组而言,数组元素的值直接存储在对应的数组元素中,因此,初始化数组时,先为该数组分配内 存空间,然后直接将数组元素的值存入对应数组元素中, TestPrimitiveArray 引用...

    C++ STL开发技术导引(第5章)

    21.9 元素相等判断equal 295 21.10 子序列搜索search 296 21.11 重复元素子序列搜索search_n 299 21.12 最后一个子序列搜索find_end 301 21.13 本章小结 303 第22章 变易算法 304 22.1 元素复制copy ...

    你必须知道的495个C语言问题

    动态数组分配 6.14 如何在运行时设定数组的大小?怎样才能避免固定大小的数组? 6.15 我如何声明大小和传入的数组一样的局部数组? 6.16 如何动态分配多维数组? 6.17 有个很好的窍门,如果我这样写:...

    《你必须知道的495个C语言问题》

    2.18 既然数组名可以用作数组的基地址,为什么对结构不能这样? 29 2.19 程序运行正确,但退出时却“core dump ”(核心转储)了,怎么回事? 29 联合 30 2.20 结构和联合有什么区别? 30 2.21 有办法初始化...

    你必须知道的495个C语言问题.pdf

    2.18 既然数组名可以用作数组的基地址,为什么对结构不能这样? 2.19 程序运行正确,但退出时却“core dump ”(核心转储)了,怎么回事? 联合 2.20 结构和联合有什么区别? 2.21 有办法初始化联合吗? 2.22 有没有一...

    C语言FAQ 常见问题列表

    o 7.18 当数组是函数的参数时, 为什么 sizeof 不能正确报告数组的大小 ? * 8. 内存分配 o 8.1 为什么这段代码不行?char *answer; printf("Type something:\n"); gets(answer); printf("You typed \"%s\"\n", ...

    C++根据输入年份计算每月的天数

    闰年的判断依据是年份能被4整除但不能被100整除,或者能被400整除。根据闰年判断结果,程序为2月份分配了正确的天数(29天或28天)。接下来,程序定义了一个整型数组daysInEachMonth,其中存储了每个月的天数。这个...

    C 语言编程常见问题解答.chm

    12.9 有没有办法从一个或多个函数中跳出? 12.10 什么是信号(signal)?用信号能做什么? 12.11 为什么变量名不能以下划线开始? 12.12 为什么编译程序提供了两个版本的malloc()函数? 12.13 适用于整数和浮点数...

    C语言编程要点

    12.9. 有没有办法从一个或多个函数中跳出? 179 12.10. 什么是信号(signal)?用信号能做什么? 181 12.11. 为什么变量名不能以下划线开始? 182 12.12. 为什么编译程序提供了两个版本的malloc()函数? 182 12.13. 适用于...

    五子棋andriod版

    3,所有的申请空间在初始化的过程中一次分配完成,全用数组形式的数据,运算过程中不动态申请对象。 4,自己构造大部分的基本数据结构,list stack等等,不做边界判断(省去if else判断),一旦边界异常,正好可以...

    你必须知道的495个C语言问题(PDF)

    难道在C语言中一个结构不能包含指向自己的指针吗? . . . . 3 1.7 怎样建立和理解非常复杂的声明?例如定义一个包含N 个指向返 回指向字符的指针的函数的指针的数组? . . . . . . . . . . . . . . 3 1.8 函数只定义...

    五子棋alphabeta--VCF VCT

    4,所有的申请空间在初始化的过程中一次分配完成,全用数组形式的数据,运算过程中不动态申请对象。 5,自己构造大部分的基本数据结构,list stack等等,不做边界判断(省去if else判断),一旦边界异常,正好可以...

    java源码包2

     Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java...

    C程序设计(第四版)学习辅导【谭浩强】

    4.1选择结构和条件判断85 4.2用if语句实现选择结构87 4.2.1用if语句处理选择结构举例87 4.2.2if语句的一般形式 89 4.3关系运算符和关系表达式91 4.3.1关系运算符及其优先次序91 4.3.2关系表达式92 4.4逻辑运算符和...

Global site tag (gtag.js) - Google Analytics