You use the 'new' operator if you don't want to have another named variable, eg. int *p = new int;

When you create a pointer, the computer creates a space in memory to hold the address of a variable. It doesn't create any space in memory for the variable itself, if you see what I mean. You have to tell it 'create a space to hold the address of a variable AND create a space for the variable itself'. That's what new does. That's also why you wouldn't usually use 'new int' - because the computer will have allotted four bytes or whatever to hold the address of the integer you're creating. Creating the integer uses up another four bytes, meaning you are using double the memory.

Hope that helps.