S1E37:动态内存管理(上)--笔记
#include <stdio.h>#include <stdlib.h>
//鱼C论坛——BaysideLizard写于2023年11月20日
/*更灵活的内存管理方式
·malloc
--申请动态内存空间
·free
--释放动态内存空间
·calloc
--申请并初始化一系列内存空间
·realloc
--重新分配内存空间
*/
int main()
{
int *ptr;
ptr = (int *)malloc(sizeof(int));
if(ptr == NULL)
{
printf("分配内存失败!\n");
exit(1);
}
printf("请输入一个整数:");
scanf("%d",ptr);
printf("您输入的整数是%d\n",*ptr);
free(ptr);//不会修改ptr的值
printf("您输入的整数是%d\n",*ptr);//非法空间
return 0;
}
/*导致内存泄露的两种情况:
--隐式内存泄漏(用完内存块没有及时使用free函数释放)
--丢失内存块地址*/
运行结果:
请输入一个整数:1
您输入的整数是1
您输入的整数是11497008
Process returned 0 (0x0) execution time : 0.540 s
Press any key to continue.
在FishC学C的第十九天 👍
页:
[1]