C USES the malloc function to apply an example of a two dimensional dynamic array
- 2020-06-01 10:26:12
- OfStack
C USES the malloc function to apply an example of a 2 - dimensional dynamic array
C language in the program running dynamic application and release of memory 10 minutes convenient, 1 - dimensional array application and release relatively simple.
Sample one
#include <stdio.h>
int main()
{
char * p=(char *)malloc(sizeof(char)*5);// Applications include 5 An array of characters
free(p);
return 0;
}
Is it so easy to apply for 2-d dynamic memory? The answer is no. There are several ways to apply a 2 - dimensional array
Sample two
/* To apply for 1 a 5 line 3 A character array of columns */
char **p=NULL;int i;
p=(char ** )malloc(sizeof(char *)*5);
for(i=0;i<5;i++)
p[i]=malloc(sizeof(char)*3) ;
The advantage of this approach is that both the rows and columns are mutable, but you must release them multiple times. Release p[n] first, then p
/* Free memory */
for(i=0;i<5;i++)
free(p[i]);
free(p);
Sample three
/* Use a pointer to an array to request memory */
char (*p)[3]=(char(*)[3])malloc(sizeof(char)*5*3)//p is 1 Individual point includes 3 Pointer to an array of elements
The memory allocated in this way only needs to be freed once
free(p);
The disadvantage of this approach is that columns are immutable!
If you have any questions, please leave a message or come to the site community to exchange discussion, thank you for reading, hope to help you, thank you for your support of the site!