free-store/new-del-1.cpp - Illustration of free store. | Lecture 3 - slide 15 : 27 Program 1 |
#include <iostream> #include <iomanip> #include <string> #include <vector> using namespace std; int main(){ // Allocate and delete an int on the free store: int *pi = new int{}; // Allocate space to an int, which is initialized to 0. *pi = *pi + 5; // *pi is 5 (because it was default initialized when created). cout << 6 * *pi << endl; // 30 delete pi; // Deallocate the int // Allocate and delete an array of ints on the free store: int *ia = new int[10]; // Allocate an array of 10 ints for(int i = 0; i < 10; i++) // Initialize array ia[i] = 2 * i; // ... by assigning to its elements. for(int i = 0; i < 10; i++) cout << setw(3) << ia[i]; // 0 2 4 6 8 10 12 14 16 18 setw is a stream manipulator. cout << endl; delete [] ia; // Deallocate the array // Allocate and delete a vector of ints on the free store: vector<int> *vd = new vector<int>(10); // Allocate a vector for(int i = 0; i < 5; i++) // Mutate half of the vecctor (*vd)[i] = 2 * i; for(int i = 0; i < 10; i++) cout << setw(3) << (*vd)[i]; // 0 2 4 6 8 0 0 0 0 0 cout << endl; delete vd; // Deallocate the vector }