Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: Visual Basic
Expertise: Beginner
Dec 9, 1998



Building the Right Environment to Support AI, Machine Learning and Deep Learning

ReDim the Right Array!

Many VB programmers use the Option Explicit statement to make sure each variable has been explicitly declared before using it. This means you'll always notice a misspelled variable, which if not caught might cause your application to behave erratically. However, when you use the ReDim statement (documented, albeit ambiguously), Option Explicit can't save you. Consider this procedure:
Sub DisplayDaysInThisYear
	Dim iDaysInYear(365)
	' Initially dimension array

	If ThisIsLeapYear() Then 
	' Is this year a leap year?
		ReDim iDaysInYr(366)
		' Extra day this year!
	End If

	MsgBox "This year has " & _
		UBound(iDaysInYear) & " days in it!"
End Sub
This ReDim statement creates a new variable called iDaysInYr, even though you really wanted to reallocate the storage space of the iDaysInYear() array. So the message box displays the incorrect number of days in the year. You can't prevent this from happening, other than being careful when coding the ReDim statement. However, if you use ReDim Preserve, Option Explicit makes sure the variable was previously declared.
Frank Masters
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date