MALLOC() / FREE()

MALLOC

Allocate memory dynamically.

void *malloc(int size);

 * its only parameter provides information about the size of the requested memory and 
   is expressed in bytes;
 * the function returns a pointer of type void * which points to the newly allocated 
   memory block, or is equal to NULL to indicate that the allocation requested could 
   not be granted;
 * the function doesn’t have a clue as to what we want to use the memory for and 
   therefore the result is of type void *; we’ll have to convert it to another 
   usable pointer type;
 * the allocated memory area is not filled (initiated) in any way, so you should 
   expect it to contain garbage.

FREE

Deallocate memory.

void free(void *pointer);

 * the function name doesn't require any comments;
 * the function does not return any results so its type is defined as void;
 * the function expects one parameter – the pointer to the memory block that is to be 
   released; usually it’s a pointer previously received from the malloc or its 
   kindred; using another pointer value may cause some kind of disaster;
 * the function doesn't need to know the size of the freed block; you can only release 
   the entire allocated block, not a part of it;
 * after performing the free function, all the pointers that point to the data inside 
   the freed area become illegal; attempting to use them may result in abnormal
   program termination.

Last updated