1.malloc()概述——申请动态内存
malloc(num)向系统申请num字节的动态内存,内存于“堆”里存放,若申请成功,则函数返回(无类型)数组的首地址,失败则返回NULL,并且申请之后的内存中并没有初始化。该函数需要引用头文件——stdlib.h。
由于“堆”有一个特性——由程序自行管理内存,所以在申请了动态内存之后,需要利用free()自行释放,这是为了避免出现野指针,并且把指向这块内存的指针指向NULL,防止之后的程序再用到这个指针。如果不自行释放的话,就会造成内存泄露——可用内存越来越少,设备速度越来越慢。
检验是否出现内存泄露的工具VLD,下载、配置好之后只需要在程序中加上头文件——vld.h,在调试状态下的输出栏就可以知道是否发生内存泄露。
2.malloc() 代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int *p = (int *)malloc( sizeof(int)*10 );//申请了40个字节的动态内存
for(int i=0; i<10; i++)
{
p[i] = i;
}
for(int i=0; i<10; i++)
{
printf("%d\n",p[i]);
}
free(p);
p = NULL://防止后面的程序再用到
return 0;
}
声明为:void* malloc(unsigne