You dim a as Array of Control with no Dimension. That ist the Prior mistake.
But for what do you need this Array ? It's enough to instance your control and add it to the Form's Control-collection.
To correct your code (which has the wrong approach in the moment) I would like to know something more about the Goal ...
Additional after clarification :
Public Sub CreateControls (c As Integer())
Dim l As Point
For i As Integer = 0 To c.Length - 1
l.Y = 50 + (3 * i - 2) * 40
l.X = 150
If c(i) = ??? Then
dim myTB as New TextBox
myTB.Width = 400
myTB.Height = 40
myTB.Location = l
myTB.Name = "TextBox"+i.toString
me.Controls.Add(myTB)
Else
dim myCB as New ComboBox
myCB.Width = 400
myCB.Height = 40
myCB.Location = l
myCB.Name = "ComboBox"+i.toString
me.Controls.Add(myCB)
End If
Next
End Sub