动态内存的定义以及内存的申请
动态内存:
根据变量定义数组的长度,堆内存区域,申请大内存,最大连续内存1.2G
申请内存:
malloc:( 使用的最多)
使用格式:
calloc:(申请内存后,并把每个单元格设为0)
使用格式:
如果用malloc来代替,如下:
int *arr = (int *)malloc(n*sizeof(int));
for(int i=0;i<n;i++)
{
arr[i] = 0;
}
realloc:(在申请过后进行修改内存大小的操作)
如果申请了n个内存过后发现实际上不够用,实际需要2n个内存来存储数据,需放大处理。
使用格式:
若用malloc来代替,如下:
int *q = (int *)malloc(2*n*sizeof(int));
for(i=0;i<n;i++)
{
q[i] = p[i];
}
注:
在申请内存使用过后,需要做释放内存的处理,用free()。括号内填写所要释放内存的名称。
内存泄漏:泄漏的内存还回来:
1.程序(进程)退出;
2.系统关机
使free崩溃的原因:
1.越界.
2.指针移动
3.重复释放