If you've got any specifics you want to hear about fine, but if I give you a general overview its this: Bethesda games have become too simplistic, too action based and have lost their core influences from CRPG mechanics, they use list based inventories which suck (and frankly they don't even implement them properly hence the memory leaks Skyrim has STILL)
I'm not a game dev but I did take a few CS classes in college. Assuming you're not referring to some super fancy game-specific application I haven't heard about, there are numerous reasons why one would choose a list based inventory. Lists scale more smoothly whereas resizing a static data structure like an array incurs an expensive copy operation.
You're talking about data structure while
RobotSquirrel was talking about UI presentation (list based).
Then why he's talking about memory leaks?
Even in the case of data structures, resizing of collections doesn't happen that much with inventories - you just reserve more memory for it, since it probably contains only "instance" data, and the general, more massive data like picture od 3d model are only referenced.
If you're intentionally sizing bigger array capacities then you'll probably wind up using more memory than lists anyway.
You do, but not by much.On big collections of elements you will probably use something like a
Flyweight pattern, which reduces memory consumption for repeating elements.
Text processors don't store font glyph for every letter you type, they just reference it, as I said above.
If you use static array, you will not resize array for every new item in it. You will probably resize it for every fifty elements, since all you wrote for the instance of item in your inventory is its state and its quantity.
But for the big collections like items in open world game, Bethesda probably used some kind of
Hashmap (Dictionary), since iterating over big list for accessing list entry becomes bigger concern than resizing array.
Which can be prone to memory leaks if objects are not cleaned of references to them before deleting.