动态内存管理

本章重点

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

相关推荐
CAU界编程小白9 分钟前
数据结构系列之十大排序算法
数据结构·c++·算法·排序算法
小武~16 分钟前
嵌入式Linux系统性能优化:深入剖析I/O性能瓶颈
linux·运维·性能优化
dragoooon3419 分钟前
[Linux——Lesson21.进程信号:信号概念 & 信号的产生]
linux·运维·服务器
头发还没掉光光32 分钟前
Linux网络初始及网络通信基本原理
linux·运维·开发语言·网络·c++
好学且牛逼的马32 分钟前
【Hot100 | 6 LeetCode 15. 三数之和】
算法
橘颂TA35 分钟前
【剑斩OFFER】算法的暴力美学——二分查找
算法·leetcode·面试·职场和发展·c/c++
爱和冰阔落35 分钟前
【Linux工具链】从跨平台适配到一键部署:yum多架构支持+Vim远程编辑+gcc交叉编译,解决多场景开发效率瓶颈
linux·运维·vim
zzzsde1 小时前
【Linux】权限(2):文件权限的深入理解&&粘滞位
linux·运维·服务器
火龙谷1 小时前
dy自动化遇到的滑动问题
运维·自动化
lkbhua莱克瓦241 小时前
Java基础——常用算法4
java·数据结构·笔记·算法·github·排序算法·快速排序