栈区

堆区

静态区

局部变量

局部数组

函数的形式参数

动态内存分配

全局变量

全局数组

静态变量

动态内存管理函数

malloc--申请空间

malloc申请的空间使用完需要用free函数释放,一般成对使用。

free ---释放空间

free 函数释放动态内存开辟的空间。

free(指针地址);--如果指针为NULL则函数不做任何做操作。

#include <stdlib.h>
//申请10个整形空间
int main()
{
  //void* malloc(size_t size);
  int *p = (int*)malloc(10*sizeof(int));
  //释放空间
  free(p)
  //释放空间后销毁指针
  p = NULL;
	return 0;
}

calloc -- 申请空间

calloc 为 Num 个大小为 size 的元素申请空间,并且把每个元素初始化为0。

calloc与malloc的区别只在于calloc会在返回地址之后把申请的空间每个字节初始化成全0。

#include <stdlib.h>
//申请10个整形空间
int main()
{
  //void* malloc(NUm, sizeof(数据类型));
  int *p = (int*)calloc(10,sizeof(int));
  //释放空间
  free(p)
  //释放空间后销毁指针
  p = NULL;
	return 0;
}