How to create instances of uvm component whose size is defined dynamically?

In reply to Varunshivashankar:
Write your function to
new
the dynamic array first.

function initialize_setup (int number_inst = 1);
  super.initialize_setup(1);
  array = new[number_inst]; // you forgot to do this 
  foreach(array[ii]) // now you can use a foreach instead of for loop
    begin
      array[ii] = parent_class::type_id::create($sformatf("array%0d",ii), this);
      array[ii].initialize_setup(1);
    end   
endfunction