当前位置: 首页 > news >正文

动态内存管理

本章重点

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

2.动态内存函数的介绍

3.malloc free calloc realloc

4.常见的动态内存错误

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

二.动态内存函数的介绍

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

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

 

相关文章:

  • 栈与队列(C语言版)
  • 数据分析简介及其常用指标与方法
  • 毕业设计—基于Spring Boot的社区居民健康管理平台的设计与实现
  • java接口
  • DeepSeek教unity------Dotween
  • 部署postgresql_exporter监控pgsql
  • mysql增加字段操作以及关键字报错
  • MATLAB中regexpi函数用法
  • 想要追踪一个在传送带上运动的东西,该怎么选择工业相机呢,需要考虑哪些因素
  • 国产Linux OS:网络性能调优关键内核参数
  • 【医学影像AI】50个眼科影像数据集(1)分类任务
  • 软件测试技术之跨平台的移动端UI自动化测试(上)
  • VSCode 中使用 Snippets 设置常用代码块
  • 数据结构:顺序表(Sequence List)及其实现
  • Natural Language Processing NLP
  • Ubuntu轻松部署ToolJet低代码开发平台结合内网穿透远程访问
  • Blackbox.AI:高效智能的生产力工具新选择
  • 实用且美观,一款简单且模块化的UI组件库!
  • 【Linux】【网络】Libevent 内部实现简略版
  • CentOS 7.8 安装MongoDB 7 副本集(Replica Set)
  • 以色列在加沙发起新一轮强攻,同步与哈马斯展开“无条件谈判”
  • 家国万里·时光故事会|构筑中国船舰钢筋铁骨,她在焊花里展现工匠风范
  • 80后女博士黄双燕拟提名为内蒙古盟市政府(行署)副职人选
  • 篮球培训机构东方启明星被指停摆,家长称已登记未退费用超百万
  • 受关税政策影响,沃尔玛将上调部分商品在美售价
  • 中期选举后第三势力成“莎拉弹劾案”关键,菲律宾权斗更趋复杂激烈