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

C语言内存管理

1.进程的内存分布

在这里插入图片描述
练习:编写一个程序,测试栈空间的大小

#include<stdio.h>#define SIZE    1024*1024*7void main (void)
{char buf[SIZE];buf[SIZE-1] = 100;printf("%d\n",buf[SIZE-1]);
}

如果SIZE 大小超过8M(102410248),那么执行的时候直接段错误,因为栈溢出

2.动态内存的申请(堆空间的申请和释放)

1、堆空间的申请

头文件
#include <stdlib.h>
函数原型
void *malloc(size_t size);
函数作用
用户手动申请堆空间
函数参数
size 你要申请的大小,以字节为单位
返回值
成功返回 你申请的内存空间的起始地址
失败则返回 NULL

注意: 成功申请到堆空间之后,会一直存在,如果不用了,记得要手动释放

2、堆空间的释放

头文件 #include <stdlib.h>
定义函数 void free(void *ptr);

http://www.lryc.cn/news/370384.html

相关文章:

  • AD24设计步骤
  • 基于MBD的大飞机模块化广域协同研制
  • 鸿蒙轻内核M核源码分析系列二十 Newlib C
  • 力扣1818.绝对差值和
  • 矩阵练习2
  • 2024海南省大数据教师培训-Hadoop集群部署
  • 力扣算法题:将数字变为0的操作次数--多语言实现
  • vue前段处理时间格式,设置开始时间为00:00:00,设置结束时间为23:59:59
  • Java 8 新特性全面解读
  • JavaScript知识之函数
  • 【Pepper机器人开发与应用】一、Pepper SDK for LabVIEW下载与安装教程
  • HCIP-AI EI 认证课程大纲
  • @Test注解方法,方法无法执行
  • golang函数
  • ubuntu上存在多个版本python,根据需要选择你想使用的python版本
  • idea 常用插件推荐
  • 训练大模型自动在RAG和记忆间选择
  • 抖店没人做了?不是项目不行了,而是商家们都换思路去玩了
  • Qt5.15.2+VS2019新加类出现无法解析的外部符号
  • 启动mysql 3.5时出现 MySql 服务正在启动 . MySql 服务无法启动。
  • 并发编程理论基础——可见性、原子性和有序性问题(一)
  • 心理咨询系统源码|心理咨询系统开发|心理咨询系统
  • Vue21-列表排序
  • 配置 JDK 和 Android SDK
  • pyechart 创建柱形图
  • c#引用dll报错cs8370功能“本地函数特性“在c#7.3中不可用
  • 【STM32】输入捕获应用-测量脉宽或者频率(方法1)
  • C# Task
  • 进口电动蝶阀的工作原理-美国品牌
  • Exploring Performance and Cost Optimization with ASIC-Based CXL Memory——论文阅读