The C++ <cstdlib> malloc function allocate memory in the heap.This means the function allocate memory during run-time.The declaration of the function is shown below.
Link: what is run-time?
|void *malloc(size_t size);|
size_t -The number of bytes the memory is to be allocated.
void* -A pointer to the memory allocated.
Some points to note:
i)The memory allocated is ‘void’ type.To use the memory for other data type cast the memory to the respective type.
ii)If the argument passed is 0 the behavior is implementation-defined.
iii)If the allocation of the memory failed NULL is returned.
Link : C++ cstdlib free
char *c=(char*)malloc( sizeof(char)*5 ); ///allocate memory that can store 5 characters,and the returned pointer is casted to char* type
memcpy( c , “New or” , 4 ); ///Copies four characters from the second string argument
c=’\0′; ///C style string requires that the last character is a NULL(‘\0’) character
cout<< c ;
free( c ); ///frees the memory pointed by ‘c’
A more exhaustive code example is given below.
using namespace std ;
int main( )
int *imem=(int*)malloc( sizeof(int)*2 ); ///allocate memory to store 2 integers
if( imem!=NULL )
cout<< “Memory allocation failed”;
cout<< *imem << ” ” << *(imem+1) ;
free( imem ); ///do not forget!
Calling the ‘free’ function is must to prevent leakage of memory.
You must prefer C++ style of dynamic memory allocation instead of this C style memory allocation using the ‘malloc’ function.The C++ style offer more advantages than the counterpart C style allocation.