小浩编程:内存空间 malloc和free

本文介绍了C语言中动态内存管理的基本操作,包括malloc用于申请内存,calloc一次性初始化内存,realloc调整内存大小,以及free释放内存。通过示例展示了malloc和free的使用,并提醒了内存泄漏的两种常见情况:未及时释放和丢失内存块地址。
摘要由CSDN通过智能技术生成

malloc – 申请动态内存
free – 释放动态内存
calloc – 申请并初始化一系列内存空间
realloc – 重新分配内存空间

下面举例
malloc和free

#include <stdio.h>
#include <stdlib.h>//因为用到了malloc和exit 和 free
int main()
{
	int *ptr;
	ptr = (int *)malloc(sizeof(int));//写不写(int *)都可以,因为malloc返回的类型是void *型   
	//malloc申请的是在动态内存空间是在堆上
	if (ptr == NULL)
	{
		printf("分配内存失败!\n");
		exit(1);//退出函数
	}
	printf("请输入一个整数:")scanf("%d",ptr);
	printf("你输入的整数是:%d\n", *ptr);
	free(ptr);//释放malloc申请的动态内存空间
	printf("你输入的整数是:%d\n", *ptr);
	return 0;
}

我们输入520

输出
520
0

内存泄漏
两种情况:

1、隐式内存泄漏(没有及时free)
2、丢失内存块地址(就是申请了给到一个指针,然后该指针又被其他变量传参赋值,即使最后释放也是导致释放的并不是想要释放的内存地址)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值