This is a bit of a problem because no matter how large of an array of student records you allocate, it may not be big enough. Besides, preallocating a large array of student records is wasteful and leaves little resource to the rest of the system.
As a result, this is one of the many applications of dynamic memory allocation. We are not changing the size of an array of student records. Instead, we allocate one student record at a time.