struct database { person * * data; int size; int nextfreeslot; database() { size = 100; nextfreeslot = 0; data = new person * [size]; } void makeitgrow(); void insert(person *); // put it in next free place for me person * findoldest(); void put(int pos, person * ptr); // check pos is valid person * get(int pos); // also checks }; person * database::get(int pos) { return data[pos]; }