Dynamic allocation of memory is possible through the use of pointers.
int i = 5; // declares an integer with an initial value of 5
int *p = &i; // declares a pointer to an integer and assigns
the address of i to it
cout << i; // outputs the number 5 to the console
cout << &i; // outputs the address of i to the console
cout << p; // same result as above
cout << *p; // outputs the value pointed to by p (5)
*p = 10; // changes the value of i to 10
int *arr = new int n; // creates an array containing
n elements and assigns its address to arr
delete arr; // deletes the memory space arr points to
(does not delete the pointer itself!)
The pointer has had his bonus, have you seen his new Bentley?