C 内存管理函数
C 语言为内存的分配和管理提供了几个函数。这些函数可以在 <stdlib.h> 头文件中找到。
序号 函数和描述
1 void calloc(int num, int size);
在内存中动态地分配 num 个长度为 size 的连续空间,并将每一个字节都初始化为 0。所以它的结果是分配了 numsize 个字节长度的内存空间,并且每个字节的值都是0。
2 void free(void *address);
该函数释放 address 所指向的内存块,释放的是动态分配的内存空间。
3 void *malloc(int num);
在堆区分配一块指定大小的内存空间,用来存放数据。这块内存空间在函数执行完成后不会被初始化,它们的值是未知的。
4 void *realloc(void *address, int newsize);
该函数重新分配内存,把内存扩展到 newsize。
C语音里面的内存划分
栈区(栈内存,存放局部变量,自动分配和释放,里面函数的参数,方法里面的临时变量)
堆区(动态内存分配,C语音里面由程序员手动分配),最大值为操作系统的80%
全局区或静态区
常量区(字符串)
程序代码区
静态与动态内存分配
在程序运行过程中,动态指定需要使用的内存大小