动态内存管理

本章重点

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

相关推荐
一只小bit9 小时前
Docker 镜像制作:包含自定义镜像及常用命令
运维·docker·容器
佳xuan10 小时前
简而言之c++
c++·算法
源远流长jerry10 小时前
Linux 网络性能优化:从应用到内核
linux·运维·服务器·网络·网络协议·性能优化
goyeer10 小时前
【ITIL】指导原则
linux·运维·服务器·数字化·itil
变量未定义~10 小时前
星际争霸、宝石塔的亮度差异、寻找食物储量
算法
YL2004042610 小时前
027合并两个有序链表
java·数据结构·算法·链表
顶点多余10 小时前
自定义协议、序列化、反序列化实现
java·linux·开发语言·c++·tcp/ip
MATLAB代码顾问10 小时前
【智能优化】无穷优化算法(INFO)原理与Python实现
开发语言·python·算法
炽烈小老头10 小时前
【每天学习一点算法 2026/05/10】合并K个排序链表
学习·算法·链表
Bruce_kaizy10 小时前
c++ linux环境编程——从应用层到linux内核深入了解文件io的调用机制(爆肝)
linux·c++·c·嵌入式linux·文件io