In the second case, I'd assume that you want a dynamically allocated "two-dimensional array", e.g:

Code:
Item** items = new Item*[3];
items[0] = new Item[10];
items[1] = new Item[20];
items[2] = new Item[30];
Again, in real code you should practically never have to use something like that (instead you could have vector<vector<Item> >.

So if you want to store a bunch of Items, use the first. (The second is for a bunch of bunches of Items.)