一、动态内存
在程序执行的过程中动态地分配或者回收存储空间的分配内存的方法。
简单来说:
- 动态内存是由程序员手动分配,手动释放用时分配,不用释放!
//创建一个动态一维数组(自动分配内存)
malloc()函数分配;free()函数释放
//构造动态数组 2020/9/21 22:09
#include <malloc.h>
#include <stdio.h>
#include <stdlib.h>
//malloc=memory(内存) allocate(分配)
int main(void)
{
int *pArr;
int i;
int len;
//构造一维数组
printf("请输入创建数组元素个数:");
scanf("%d", &len);
pArr = (int *)malloc(4 * len);
//对一维数组进行赋值并输出
printf("请输入数组元素:");
for (i = 0; i < len; i++)
{
scanf("%d", &pArr[i]);
printf("%-5d", pArr[i]);
}
free(pArr);
system("pause");
return 0;
}
- 动态内存是在堆中分配的;
二、静态内存
指在程序运行期间分配固定的存储空间的方式。
简单来说:
静态内存是由系统自动分配,自动释放;
静态内存是在栈分配的;
int a[5] ; //系统分配了20个内存空间