new simply allocates enough memory for sizeof(int);
Because there is no sequence in where the memory is located, it passes back a handle to the randomly allocated memory. You can then access your data by using the dereference(*). This is effecient for almost all large classes, large arrays, and almost everything placed inside of a buffer (audio decoding, mesh loading, useful for games).