Menu

C++ TUTORIALS - C++ Dynamic Memory

C++ Dynamic Memory

ADVERTISEMENTS

The new and delete operators:

new data-type;

ADVERTISEMENTS

double* pvalue  = NULL; // Pointer initialized with null
pvalue  = new double;   // Request memory for the variable

ADVERTISEMENTS

double* pvalue  = NULL;
if( !(pvalue  = new double ))
{
   cout << "Error: out of memory." <<endl;
   exit(1);

}

delete pvalue;        // Release memory pointed to by pvalue

#include <iostream>
using namespace std;

int main ()
{
   double* pvalue  = NULL; // Pointer initialized with null
   pvalue  = new double;   // Request memory for the variable
 
   *pvalue = 29494.99;     // Store value at allocated address
   cout << "Value of pvalue : " << *pvalue << endl;

   delete pvalue;         // free up the memory.

   return 0;
}

Dynamic Memory Allocation for Arrays:

char* pvalue  = NULL;   // Pointer initialized with null
pvalue  = new char[20]; // Request memory for the variable

delete [] pvalue;        // Delete array pointed to by pvalue

double** pvalue  = NULL;     // Pointer initialized with null
pvalue  = new double [3][4]; // Allocate memory for a 3x4 array

delete [] pvalue;        // Delete array pointed to by pvalue

Dynamic Memory Allocation for Objects:

#include <iostream>
using namespace std;

class Box
{
   public:
      Box() { 
         cout << "Constructor called!" <<endl; 
      }
      ~Box() { 
         cout << "Destructor called!" <<endl; 
      }
};

int main( )
{
   Box* myBoxArray = new Box[4];

   delete [] myBoxArray; // Delete array

   return 0;
}