Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Home » Tip Bank » C++
Language: C++
Expertise: Intermediate
Feb 14, 2002



Building the Right Environment to Support AI, Machine Learning and Deep Learning

Reallocating Memory Pointers

In any decent sized application, one of the most common activities is string manipulation at one level or another. One of the most common problems with string manipulation is the reallocation of memory strings depending on the size of input. The old school of memory allocation comprising of malloc and free provided a method called realloc for the purpose. The new school of Object Oriented memory allocators is not so flexible. Now, reallocation of memory has to be provided for by the developer. Here is a sample code snippet to achieve this purpose:
#define REALLOC_MEM(strIn, lCurrentSize, lNewSize){\
    char *strTemp = new char[lCurrentSize];\//Creating _
a temporary
  //string with current size
    strcpy(strTemp, strIn);\ //Copying data from current _
    delete [] strIn;\ //Deleting the current string
    strIn = new char[lNewSize];\ //Allocating new memory _
with new size
    strcpy(strIn, strTemp);\ //copying the temp string _
into the current
    delete [] strTemp;\ //Deleting the temp string

This macro first assigns the current string to another temporary string and then allocates new memory to the first string and copies its contents back from the temporary string. This macro can be extended to reallocate memories for any other data types as well.
C.V. Ram
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date