In the second case, I'd assume that you want a dynamically allocated "two-dimensional array", e.g:
Again, in real code you should practically never have to use something like that (instead you could have vector<vector<Item> >.Code:Item** items = new Item*[3]; items[0] = new Item[10]; items[1] = new Item[20]; items[2] = new Item[30];
So if you want to store a bunch of Items, use the first. (The second is for a bunch of bunches of Items.)