2. Dynamic Memory Allocation
• Reserves memory from a much larger free store, or
heap
• Gives the programmer a pointer to refer to this
memory
3. Memory management operators
There are two types of memory management
operators in C++:
• new
• delete
These two memory management operators are
used for allocating and freeing memory blocks in
efficient and convenient ways.
4. New operator
The new operator in C++ is used for dynamic
storage allocation. This operator can be used to
create object of any type.
5. New operator
The general syntax of new operator in C++ is as
follows:
pointer variable = new datatype;
In the above statement, new is a keyword and the
pointer variable is a variable of type datatype.
6. New operator
For example:
int *a=new int;
The new operator allocates sufficient memory to
hold the object of datatype int and returns a
pointer to its starting point. The pointer variable
a holds the address of memory space allocated.
7. New operator
Dynamic variables are never initialized by the
compiler. Therefore, the programmer should
make it a practice to first assign them a value.
8. New operator
The assignment can be made in either of the two
ways:
int *a = new int;
*a = 20;
or
int *a = new int(20);
9. New operator
Dynamic memory allocation in case of arrays can
be done as following:
int* a = new int[x];
a points to a block of memory
containing x ints
10. Delete operator
The delete operator in C++ is used for releasing
memory space when the object is no longer
needed. Once a new operator is used, it is
efficient to use the corresponding delete
operator for release of memory.
11. Delete operator
The general syntax of delete operator in C++ is as
follows:
delete pointer_variable;
In the above example, delete is a keyword and
the pointer_variable is the pointer that points to
the objects already created in the new operator.
12. Important points while using memory
management operators
The programmer must take care not to free or
delete a pointer variable that has already been
deleted.
Overloading of new and delete operator is
possible (to be discussed in detail in later section
on overloading).
13. Important points while using memory
management operators
We know that sizeof operator is used for
computing the size of the object. Using memory
management operator, the size of the object is
automatically computed.
The programmer must take care not to free or
delete pointer variables that have not been
allocated using a new operator.
14. Important points while using memory
management operators
Null pointer is returned by the new operator
when there is insufficient memory available for
allocation.
15. Example:
#include <iostream.h>
void main()
{//Allocates using new operator memory space //in
memory for storing a integer datatype
int *a= new a;
*a=100;
cout << " The Output is:a="<<a;
//Memory Released using delete operator
delete a;
}
17. Dynamic Constructor
The constructors can also be used to allocate
memory while creating objects. This will enable
the system to allocate the right amount of memory
for each object when the objects are not of the
same size, thus resulting in the saving of memory.
Allocation of memory to objects at the time of
their construction is known as dynamic
construction of objects. The memory is allocated
with the help of
new operator
18. # include <iostream.h>
# include <conio.h>
# include <string.h>
class str
{
char *name;
int len;
public:
str()
{
len=0;
name=new char[len+1];
}
str(char *s)