动态内存管理

本章重点

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

相关推荐
无足鸟ICT2 分钟前
【RHCA+】替换变量
linux
尘似鹤5 分钟前
rk3506的uboot源码分析(三)
linux·uboot
2023自学中29 分钟前
imx6ull 开发板 贪吃蛇, C++11 SDL2 无硬件GPU优化版
linux·c++
tiannian12201 小时前
RFID资产管理系统投入产出全拆解:硬件、软件、部署、运维四笔账一次算清
运维·rfid·资产管理系统
我头发多我先学1 小时前
Linux入门:简要认识Linux和基础指令
linux·运维·服务器
Urbano2 小时前
职业工装外套核心缝制工序自动化替代分析与多品牌设备选型报告
运维·自动化
青山木2 小时前
Hot 100 ---腐烂的橘子
java·数据结构·后端·算法·leetcode·广度优先
逍遥德2 小时前
运维技术栈Linux+docker+Kubernetes+Jenkins/GitLab CI 知识点详细列表
linux·运维·docker
名字还没想好☜2 小时前
Kubernetes CrashLoopBackOff 排查全流程:从 describe 到日志到 exit code
运维·docker·云原生·容器·kubernetes
未来之窗软件服务2 小时前
计算机考试-快速排序—东方仙盟
数据结构·算法·排序算法·仙盟创梦ide·东方仙盟