To understand C How to allocate dynamic memory in language , We first need to understand what is dynamic memory allocation , We have already introduced global variables and local variables , Global variables are allocated to static storage areas in memory , Non static local variables ( Include formal parameters ) Is a dynamic storage area allocated in memory , This storage area is called a stack (stack) Area of . in addition to ,C The language also allows the creation of dynamic memory allocation regions , To store some temporary data , This data does not have to be defined in the declaration section of the program , You don't have to wait until the end of the function to release , But open it up whenever you need it , Release when not needed . 
 These data are temporarily stored in a special free storage area , Called heap (heap) area . You can apply to the system for space of the required size as required . 
 Because they are not defined as variables or arrays in the declaration section , Therefore, these data cannot be referenced by variable name or array name , Can only be referenced by pointer .
 So how does the computer establish the dynamic allocation of memory ; The dynamic allocation of memory is realized through the library functions provided by the system , Mainly  
malloc,calloc,free,realloc this 4 Functions . I will introduce them one by one .
 one . use malloc Function to open dynamic storage area ;
 The general form is ;
void *malloc(unsigned int size);
 Its function is to allocate a length of size Continuous space of . Formal parameter size Type of is unsigned integer ( Negative numbers are not allowed here ). Value of this function ( Namely “ Return value ”) Is the address of the first byte of the allocated area , Or , This function is a pointer function , The returned pointer points to the first byte of the allocation field .
 two . use calloc Function to open dynamic storage area 
 The general form is ;
void *calloc(unsigned n,unsigned size);
 Its function is to allocate in the dynamic storage area of memory n Pieces of length size 
 Continuous space of , This space is usually large , Enough to hold an array . use calloc Function to open up dynamic storage space for a one-dimensional array ,n Is the number of array elements , The length of each element is size. 
 This is dynamic array .  Function returns a pointer to the first byte of the allocated field ; If the assignment is unsuccessful , return NULL.
 three . use realloc Function to reallocate dynamic storage 
 The general form is ;
void *realloc(void*p,unsigned int size);
 If passed malloc Function or  calloc  Function gets the dynamic space , Want to change its size , Available recalloc Function reassignment .
 use realloc  Function will p The size of the pointed dynamic space changes to size.p The value of does not change , If reassignment is unsuccessful , return NULL.
 four . use free Function to free dynamic storage 
 The general form is ;
void free(void*p);
 Its purpose is to release pointer variables p Dynamic space pointed to , So that this part of the space can be reused by other variables . p Last call expected calloc or malloc  Function return value .
free  Function has no return value .
 above 4 Declaration of functions in  stdlib.h In header file , When using these functions, you should use “#include” Command handle  
stdlib.h Include header files in program files . This is the basic dynamic memory allocation .
 report / feedback 
Technology