In reply to shravan19:
The "new" function is used to set the size of dynamic arrays. While, "create()"/"new()" will allocate memory to each element of array. They both allocate memory and initialize values. The big difference is that the new() function is called to construct a single object, whereas the new operator is building an array with multiple elements.
Here you have to allocate the memory for dynamic array first and then you can allocate each elements individually using "create()".
// I am assuming seq_module is a uvm based class
seq_mod = new[num_elements];
seq_mod[i] = seq_module::type_id::create($sformatf("seq_mod[%0d]",i));
Here, the "new" will allow you to create elements/handles to iterate in foreach loop. While "create()" will allocate memory space for each of those elements.