@YoSoyFreeman The way that it's commonly done (and how most List<T> type structures work under-the-hood) is that it starts out with a reasonable default capacity (say, 16) and tracks its count separately from its capacity. Then, whenever it needs to expand (count > capacity), it doubles capacity, and copies everything over to the new doubled space.
That minimizes the amount of churn while still allowing for expansion.
Yeah! I'm liking C but the fixed size is being problematic for a couple of things. Still learning.
@LouisIngenthron Thank you! Thank makes a lot of sense. However, then i have a new array, do i just update the pointer to point to this new one instead?
@YoSoyFreeman Once you've copied over the data and freed the old memory, yes.
Yep, depending on the language, that is supported out of the box. C#
List<T>, C++std::vector<T>do it, as does GDScript's non-packed arrays (theArraytype that you construct with[]), and most interpreted languages'.