Well if he wants to use "arrays of structs", he must be familiar with dynamic allocation it was just an example... He could make it with pointers in struct sth. like this:
...
struct SomeStr{
...
SomeStr* Link;}
...
And than dynamicaly allocate new nodes,and make the Link point to the fresh allocated struct.So it is not impossible I guess, and it is faster than vectors but more complicated of course.
Cheers
My friend, you just described a linked list.
AFAIK a better structure to use for a database implementation is the b-tree. Arrays give performance problems when adding/removing/moving data that isn't at the end, linked lists can be slower to search....
You might also take a look at B+ and B* trees, both of which offer better performance than standard B trees.
On a related note, you may also take a quick look at searching and sorting algorithms such as quicksort, et al.
Hello,
I took a look on linked lists and hash tables, but what I don't understand is can I change the hash table size in run time, without any collisions ...
I don't see why not. You just have to provide for that eventuality.

Cheers,
cgkanchi