1: //pointers5.cpp 3: #include <iostream> 4: using namespace std; 6: int main() 7: { 8: cout << "\nThis program illustrates the use of pointers with " 9: "dynamic arrays,\nwhich essentially parallels their use with " 10: "static arrays."; 11: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n'); 13: cout << "\nFirst we declare a dynamic array, then we put some values " 14: "in it.\nNext we display those values. Finally, we display the " 15: "3rd element\nof the array directly, in two different ways.\n"; 16: int* p_int = new int[5]; 17: for (int i = 0; i < 5; i++) p_int[i] = i + 1; 18: for (int i = 0; i < 5; i++) cout << p_int[i] << " "; cout << endl; 19: cout << p_int[2] << endl; 20: cout << *(p_int + 2) << endl; 22: //Return the storage allocated to a dynamic array to the heap 23: delete [] p_int; 24: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n'); 25: } 27: /* 28: * Some things to try: 29: * What would happen if we tried to display the values this way? 30: * Try inserting these three lines after line 20. 31: for (int i=0; i<5; i++) cout << *p_int++ << " "; cout << endl; 32: cout << p_int[2] << endl; 33: cout << *(p_int+2) << endl; 35: * What would happen if we now tried to display the values after deallocation? 36: * Try inserting the following line after line 23. 37: for (int i=0; i<5; i++) cout << p_int[i] << " "; cout << endl; 38: */