什么时动态内存分配
一般我们写程序都是在栈区分配空间,如果我们想根据需求想随时存放随时释放数据,堆区可以实现根据需求想系统申请所需大小的空间。
建立内存的动态分配
内存的动态分配是通过系统提供的函数来实现的,主要有malloc,calloc,free,realloc这四个函数,都需要引用stdlib.h或者malloc.h文件.
在malloc,calloc,realloc函数向堆区申请空间之后,处理完数据需要释放空间。
用malloc函数开辟动态存储区
int main()
{
int n=5;
int *ip =NULL;
ip=(int*)malloc(sizeof(int)*n)//表示向堆区申请n个int型的字节
if(ip==NULL)exit(1); //注意:在向堆区申请完空间之后一定要对指针进行判空
//处理数据
free(ip); //处理完数据对空间进行释放
ip=NULL; //释放完堆区空间对指针置空
注意:
- 在申请空间时,指针是什么类型申请的空间就要强转为什么类型。
- 函数malloc申请的是连续指定的空间
- 函数malloc在申请空间之后并不进行初始化。
用calloc函数开辟动态存储区
int main()
{
int n=5;
int *ip =NULL;
ip=(int