There are two main issues to consider when dealing with a large number of objects.
The first has been addressed in Frederik Gheysels' answer through the use of the Fly weight pattern, which is the memory issue.
The second issue is how to efficiently add and retrieve these objects/structs (depending which path you chose to follow). Obviously I am assuming you don't just create these objects and never want to retrieve them again ;)
To answer this question though, it really depends on how you want to add and access your data. From there you can decide which data structure is best suited for your task. For example maybe you want to process these objects in LIFO order, then a stack would be the most efficient way.