Static vs Dynamic data structures
Static data structures are predefined to have a specific amount of space in them to hold memory addresses. This value can be manually edited during the program but will throw an error if you try to add a value to the data structure that it cannot hold. Dynamic data structures are more memory efficient because they do not take up as much memory space if you don’t use all the available space in the data structure.
To define an array, the program needs to be given three pieces of information, the name of the structure, the data type the structure will hold, and the size of the structure (not applicable with dynamic structures). This is relatively easy to do, however it is difficult to estimate the size of a data structure needed with large data sets, and once the array is full, you cannot put any more data in it. Dynamic data structures on the other hand, do not need to have their sizes defined in advance and can have data added to them progressively. Dynamic data structures also are more memory efficient due to the fact that they do not have a limited amount of data able to be stored in them when the program is first run.