One way to hold it is in an array of structs, unless the data is particularly complicated like in a text editor, word processor, or a web server. What it really means is that you need a dynamic storage method not a static one. Arrays in C++ for example are static. You specify how big each element is and how many there are. If it's too big for what was needed you've wasted space. Too small and your application will probably go into a permanent sulk sometime- i.e. it will crash.
Pointers are the Answer
More modern languages such as C# or Java offer libraries of advanced data structures and even C++ also has the STL types like vector etc and we'll come onto those in later lessons. There are a considerable number of dynamic storage methods possible- not just dynamics arrays - but jagged arrays, sparse arrays, index sequential, maps, trees, queues etc. Do you need a list that you can process randomly or just serially (element one then element two etc)? Those are the stuff of much more advanced tutorials but this lesson will start by showing how to build and use a single linked list class and use of it..
About Linked Lists
A linked list a bunch of structs all connected by pointers. There are basically two types of linked lists: single and double. In a single linked list (shown), each node in the list is a struct and contains data plus a pointer to the next node. In a double linked list, each node has two pointers not one- one to the next node and one to the previous.On the next page : Example 1 - A Linked List Implementation

