指针堆栈空间
1、参数是指定堆区分配多大的空间
2、返回值:成功就是堆区空间首元素地址
3、失败返回 NULL
int *p1;
p1=(int *)malloc(sizeof(int));
if(p1==NULL)
{
printf("分配失败\n");
return -1;
}
*p1=10;
printf("*p1=%d\n",*p1);
if(p1!=NULL)
{
free(p1);
p1=NULL;
}
1、动态分配的空间,如果程序没有结束,不会释放
2、一般使用完,需要人为释放 free()
3、free(p )不是释放 p 变量,释放 p 所指向的内存
4、同一块堆内存只能释放一次
5、所谓的释放不是指内存消失,而是指这块内存不能再使用,系统回收了,如果用户再用,就是操作非法内存