动态内存管理

malloc和calloc的用法;

#include <stdio.h>
#include <stdlib.h>
int main() {
	//malloc申请一段连续的内存空间(数组也是)
	//生命周期到手动释放(free)结束
	//malloc申请内存空间括号里的单位叫做字节
	//malloc返回值是void*并且申请失败返回空指针
	//malloc申请的内存需要借助free进行释放,
	//如果没有及时释放就会造成内存泄漏
	//内存泄漏会造成程序后续无法在申请到内存了
	//申请不到程序就无法进行正常工作(尤其是服务器程序影响很大)
	//calloc默认将申请的内存初始化全0 (应用场景很局限)
	//realloc可以搭配malloc和calloc使用,作用是扩容
	//realloc如果传一个空指针无需搭配malloc和calloc使用也可以完成动态内存管理
	//可以完成数据的搬运
	//int * p = (int*)malloc(INT_MAX / 4);
	//*p = 20;
	//printf("%d\n", *p);
	//free(p);
	int* p = (int*)malloc(sizeof(int) * 10);
	free(p);
	p = NULL;
	//C语言标准规定,对一个空指针进行free,没有任何副作用
	free(p);
	system("pause");
	return 0;
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值