int* p = (int*)malloc(20); //malloc开辟空间 将其地址放在int* 类型的指针变量里
*p = 5;// 对p 解引用 存入5在空间里
/*
可能出现问题 malloc开辟空间失败会返回NULL 空指针的
不能明确得知 malloc返回的是什么
所以得先判断 是否开辟成功
*/
if(p == NULL)
{perror("malloc");return 1;
}
else
{*p = 5;
}
free(p);
p = NULL;
0
p
|
1
p+1
|
2
p+2
|
3
p+3
|
4
p+4
|
//动态内存开辟
int* p = (int*)malloc(20);//开辟20个字节的空间 都是int类型 4*5 == 20 5个int类型空间
//判断
if(p == NULL)
{return 1;
}
//存入数值
int i = 0;
for(I = 0; I < 20; I++) // p+0 .. p+19 越界
{*(p+i) = I; //类似于p[I] = I;
}
//释放
free(p);
p = NULL;
void test()
{int num = 10;int* p = #// ...free(p);//释放的是非动态开辟内存的空间p = NULL;
}
//动态内存开辟
int* p = (int*)malloc(40);//开辟40个字节的空间 都是int类型 4*10 == 40 10个int类型空间
//判断
if(p == NULL)
{return 1;
}
//存入数值
int i = 0;
for(I = 0; I < 5; I++) // p+0 .. p+19 越界
{*(p+i) = I; //类似于p[I] = I;p++; //这步关键 巨关键
}
//释放
free(p);
p = NULL;
一文介绍常见的动态内存错误相关推荐
- C语言程序设计 | 动态内存管理:动态内存函数介绍,常见的动态内存错误,柔性数组
动态内存管理目录: 动态内存函数的介绍 常见的动态内存函数的错误 柔性数组 为什么会有动态内存管理呢 我们在日常使用中,创建一个数组,一个变量时都会开辟空间 如: int a; //在栈上开辟一个四字 ...
- 常见C语言内存错误及对策
转自C语言中文网:http://see.xidian.edu.cn/cpp/html/483.html 一.指针没有指向一块合法的内存 定义了指针变量,但是没有为指针分配内存,即指针没有指向一块合法的 ...
- 动态内存管理(开辟以及释放动态内存空间)
文章目录 前言 malloc函数 calloc函数 realloc函数 free函数 - 避免内存泄漏 常见的动态内存错误 前言 如果我们被问道:如何创建一个可以根据用户需求来开辟大小的数组? 可能有 ...
- 内存分配者-动态内存
文章目录 动态内存管理 为什么存在动态内存分配 动态内存函数的介绍 malloc==申请空间==和free==释放空间== 那我们可不可以看开辟失败的呢 有借有还 ==free释放内存== 注意 ca ...
- C语言提高篇之——动态内存管理
目录 1. 动态内存分配存在的意义 2.动态内存函数介绍 2.1 malloc 2.2 free 2.3 calloc 2.4 realloc 3.常见的动态内存错误 3.1 对空指针解引用 3.2 ...
- C语言 --- 动态内存管理(上)+优化版通讯录+笔试题
文章目录 前言 一.为什么存在动态内存分配 二.动态内存函数的介绍 2.1.malloc函数+free函数 2.2.calloc函数+free函数 2.3.realloc函数 三.常见的动态内存错误 ...
- C进阶⚡- 05动态内存管理
我知道的只是 " 肉随便加 "和 " 要加多少加多少 " 这些词. ---- 路飞 阶段2目标: 此阶段开始大量刷题,多多参加编程类竞赛,在实战中 ...
- 【C进阶】动态内存管理
⭐博客主页:️CS semi主页 ⭐欢迎关注:点赞收藏+留言 ⭐系列专栏:C语言进阶 ⭐代码仓库:C Advanced 家人们更新不易,你们的点赞和关注对我而言十分重要,友友们麻烦多多点赞+关注,你们 ...
- C语言第十三课,动态内存分配
动态内存分配的空间放在堆区.动态内存函数主要有:malloc,calloc,realloc 动态内存函数的介绍 malloc 申请一个空间,大小是size的大小,指向的一个类型不明,因为在设计的时候, ...
最新文章
- hihoCoder#1384 : Genius ACM
- 李彦宏再提自动驾驶:是时候推动无人车商用了
- access port 与portfast之间的关系
- Java for LeetCode 206 Reverse Linked List
- 自然语言处理之AI深度学习顶级实战
- Qt工作笔记-仿大佬风格代码(使用#ifdef Q_OS_WIN32)
- 在线闹钟html代码复制,html5时钟实现代码
- 漫画:Dijkstra 算法的优化
- rpgmv存档修改html_使用HTML5存档网站内容更改
- Java 将HTML转成PDF的方法
- 【王道考研】信号量机制
- 使用 Python 将 PDF 文件按页进行拆分
- QStringList去除重复项
- LeetCode 253. 会议室 II**(double)
- Java面试总结(2021优化版)发布1024程序员节
- 同或门真值表_逻辑函数表达式、真值表.ppt
- jsp 实现查询功能
- org.eclipse.wst.xsl.jaxp.debug.invoker.TransformationException
- 浪潮信息加入,已完成与龙蜥操作系统产品兼容性验证
- day6——css3
热门文章
- 人为差错 (Human Error)(一)
- gradle不同版本下载太慢---腾讯做了国内镜像可以直接下载
- BeanFactory和FactoryBean的区别
- flex 为之疯狂的
- AAAI 2023| 旷视研究院入选论文亮点解读
- keil护眼色配置及插件整理
- 如何参与波卡卡槽拍卖获得Acala链ACA奖励?
- Java GUI之贪吃蛇---[观看bilibili-狂神说Java--学习笔记]
- SQL 语句中的 (+)
- LVM原理详解及实战
|