+1 to Teddy for denoting that you can implement your own vector.
In truth, the common vector implementation uses a linked-list. For that, you need only allocate memory for a single element and attach it to the chain. You can even sort simply by rearranging links.
@bluechill: damn..you got to this before I did...oh well. As for linked-lists relying on malloc(), there's no reason that it's necessary. Links can be allocated with 'new' just as well as they could with malloc().
@Super_mario666: it would help if you'd given all of the restrictions in the original post. Using realloc() is perfectly reasonable for a C-like solution, if you're permitted. However, of course, in C++ you should probably be using 'new' & 'delete'. It really sounds like your instructor is pushing you for the simplest, naive solution: allocate a new array, copy the data to it, change a pointer to point to the new array. bluechill's later post does indicate the general idea, but don't use the code verbatim. You MUST ensure that you are not invalidating any important data when you delete a temporary pointer. Again, a linked-list would likely be ideal. Keep in mind that a linked-list is a technique, not a library feature like a vector, map, deque, set, etc.
Sorry I didn't get to post on this sooner...work likes to keep me busy.