动态内存管理

本章重点

1.为什么存在动态内存分配

2.动态内存函数的介绍

3.malloc free calloc realloc

4.常见的动态内存错误

一.为什么存在动态内存分配

二.动态内存函数的介绍

cpp 复制代码
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
int main()
{   
	//开辟四十个字节的空间用来存放整形
	int* p = (int*)malloc(40);
	//存放1~10
	int i = 0;
	//记得判断p是否为空指针
	if (p == NULL)
	{
		printf("%s\n", strerror(errno));
				return 1;
	}
	for (i = 0;i < 10;i++)
	{
		p[i] = i + 1;
	}
	for (i = 0;i < 10;i++)
	{
		printf("%d ",p[i]);
	}
	//一定记得开辟完内存记得释放,以及置为空指针。
	free(p);
	p = NULL;
	return 0;
}
cpp 复制代码
int main()
{   
	int* p = (int*)calloc(10, sizeof(int));
	if (p == NULL)
	{
		printf("%s\n", strerror(errno));
		return 1;
	}
	free(p);
	p = NULL;
	return 0;
}

相关推荐
2501_941982051 分钟前
基于自动化协议的企微外部群消息调度与状态回执实现逻辑
运维·自动化·企业微信
朔北之忘 Clancy2 分钟前
2025 年 6 月青少年软编等考 C 语言一级真题解析
c语言·开发语言·c++·学习·算法·青少年编程·题解
双层吉士憨包3 分钟前
如何安全访问 Kickass Torrents:代理选择、设置与最佳实践(2026)
运维·服务器
guygg883 分钟前
结合VD算法与IMM算法的卡尔曼滤波机动目标跟踪方法
人工智能·算法·目标跟踪
JY.yuyu7 分钟前
Windows Server服务器数据备份 / 活动目录(AD域)
运维·服务器
三翼鸟数字化技术团队8 分钟前
搭建自己的MCP服务器
运维·服务器·人工智能
R-G-B13 分钟前
BM28 二叉树的最大深度
数据结构·算法·二叉树·bm28·二叉树的最大深度
Zsr102314 分钟前
Rancher:一站式Kubernetes管理平台,让容器运维更简单
运维·kubernetes·rancher
叽里咕噜怪17 分钟前
Rancher
运维·rancher
小五传输18 分钟前
认准好用的跨网文件安全交换系统:安全传输与高效协作两全其美
大数据·运维·安全