动态内存管理

本章重点

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;
}

相关推荐
春日见3 分钟前
端到端自动驾驶综述
linux·人工智能·算法·机器学习·自动驾驶
CDN36015 分钟前
CSDN 技术分享|360CDN SDK 游戏盾集成与常见问题
运维·游戏
Lary_c18 分钟前
【测试自动化】pytest + Allure 完整学习指南
运维·自动化·pytest
Trouvaille ~18 分钟前
【项目篇】从零手写高并发服务器(六):EventLoop事件循环——Reactor的心脏
linux·运维·服务器·c++·高并发·epoll·reactor模式
bai_lan_ya18 分钟前
linux -- 文件IO
linux·服务器
Book思议-22 分钟前
【数据结构实战】单向循环单链表判别条件理解
c语言·数据结构·算法
逆境不可逃27 分钟前
【后端新手谈 04】Spring 依赖注入所有方式 + 构造器注入成官方推荐的原因
java·开发语言·spring boot·后端·算法·spring·注入方式
林鸿群27 分钟前
Ubuntu 26.04 本地安装 GitLab CE 完整教程(非 Docker 方式)
linux·ubuntu·gitlab·私有部署·代码托管·ubuntu 26.04·omnibus
森林里的程序猿猿32 分钟前
垃圾收集器ParNew&CMS与底层标记三色标记算法
java·jvm·算法
进击的小头32 分钟前
第12篇:开环系统伯德图设计控制器
python·算法