最近,本大王利用C语言做数据结构时,遇到了许多与malloc相关的问题,特写此一篇来加深记忆并提醒广大初级coder。

前言:为什么使用malloc?

  • 使用malloc()的作用:

C语言的数据结构实现中,到处是malloc()的使用,一般使用如图:(不必关心注释内,看代码即可)

观察其中malloc这一行,
这样的做法相当于告诉了程序,我们申请了一片地址,这片地址是中存了一个特定结构体类型的数据。且目前我们拿到的是这片地址的指针,可以利用指针,对该结构体做修改。
那么,如果我们不使用malloc会怎么样?

错误1:


如果我们在前言中的代码中,只是声明了Mystack* st; ,那么我们使用st中的que时,程序就会报错,显示这片异常,为什么异常呢,不用malloc申请空间,这片que相当于野指针,即:程序不知道取多大的地址、取哪里的地址去队que中的rear做初始化。虽然你声明的que带有rear和front。最简单理解就是:你没有向计算机声明:你把内存中的某片地址给了que,现在的que:是野指针,就是说que地址非法,你的que地址因为没有申请过,所以可能将来会被别的一些什么变量占据。

错误2:简单,但是可能偶尔会懵逼


贼简单的程序出了问题,刚刚申请了n1空间,但不能做n1->val赋值,不能访问,原来只是忘记了导包:#include<stdlib.h>

错误3:(关于数值)

某些数值特别大:首先检查是否做过变量赋值。

C语言malloc()的使用解释和报错以及读值错误分析相关推荐

  1. Python语言importError:cannot import name ‘InvalidArgumentException‘报错的解决方法:

    Python语言importError:cannot import name 'InvalidArgumentException'报错的解决方法: 参考文章: (1)Python语言importErr ...

  2. 调用webservice接口,报错:(十六进制值0x01)是无效的字符。

    文章目录 #事故现场 #分析 #解决方法 #事故现场 调用webservice接口,报错:(十六进制值0x01)是无效的字符. 如图: 意思是webservice返回的信息中包含无效的字符,无法解析成 ...

  3. 为什么c语言一用windows.h就报错_C代码里面加一行网址依然可以运行,并不会报错,为何...

    如果说在C/C++代码里任意放一行URL,并不会造出编译器报错,甚至能正常运行,乍一听是不是会觉得很奇怪? "语法里有这项吗,我编程那么多年怎么没听过?" 读者可以在暂停思考一下为 ...

  4. R语言3.6版本安装ggplot2报错解决方法

    文章目录 1. ggplot2包安装报错 2,安装rlange1.0.0 3. 安装Rtools3.6 4. 重新安装ggplot2 5. 安装ellipsis包 6. 安装pillar包 7. 重新 ...

  5. pytorch 1.9.0 backward函数解释以及报错(RuntimeError: grad can be implicitly created only for scalar outputs)

    文章目录 官方文档 简单示例 示例1 示例2(报错(RuntimeError: grad can be implicitly created only for scalar outputs)解决方法) ...

  6. go语言gob序列化指针无法寻址报错

    一.错误描述 使用gob序列化时出现报错:gob: unaddressable value of type *big.Float 场景: 序列化一个数据结构中包含了一个map字段,其中value为bi ...

  7. mysql 报错注入 读文件_SQL注入-读写文件

    SQL注入-读取文件 使用函数 load_file("文件路径/名称") 1.读取/etc/passwd 文件(SQL注入只能读取/etc/passwd文件,不能读取其他文件) h ...

  8. mysql timestamp 插入null报错_读MySQL 5.7文档11.2 Date and Time Data Types总结

    作者:魏新平,知数堂第5期MySQL实战班学员,第10期MySQL优化班学员,现任职助教. 读MySQL5.7文档11.2 Date and Time Data Types MySQL的时间类型分为D ...

  9. ie8 js未指明的错误_win7系统IE8,js报错:“属性值中不能使用字符''。”求帮助。...

    代码:functionGrid_prepareMakeBodyRow(iFromRow,iRowCount){varfieldnames=null;for(vari=0,j=this.asFieldN ...

最新文章

  1. 从一致性hash到ceph crush算法演进图谱(持续更新)
  2. 疫情对房地产的后期影响:再见已不是从前
  3. Git在服务器安装完成后续工作
  4. unity 平移图片_Unity 两张背景的切换平移
  5. 东北农业大学网络教育计算机考试,THEOL网络教学综合平台-东北农业大学继续教育学院...
  6. labview周立功can通讯程序.rar_使用Labview进行CAN 通讯之dbc解析
  7. 一加Ace渲染图曝光:大眼三摄+150W超快闪充
  8. Ubuntu14.04server 安装 fping
  9. java命令_Java程序员,不得不会的JDK jstack命令工具
  10. 分布式系统阅读笔记(十九)-----移动计算和无处不在的计算
  11. 深入浅出数据库索引原理
  12. 基于Python爬虫的网易云音乐
  13. Webpack中 的css-loader和less-loader
  14. 30岁开始学编程,学什么语言比较好?
  15. 广深IT之行:传统模式与技术创新的融合
  16. windows下ITIM admin API开发环境配置,部署至tomcat
  17. 视频会议工具Zoom上市大涨—办公真的必须面对面吗?
  18. 【Linux】ln: failed to create symbolic link ‘*.so’: Operation not supported
  19. IOS AVPlayer无法播放H265编码格式的MP4视频
  20. JavaScript高级特效

热门文章

  1. 实验一:贝叶斯网络及其应用
  2. 手机恢复出厂设置后一直显示无服务器,手机恢复出厂设置后开不了机怎么办【图文教程】...
  3. 校园超市购物系统(JAVA,JSP,SSM,MYSQL)
  4. 了解你的敌人:跟踪僵尸网络
  5. Android实现学生信息管理系统之学生端功能实现
  6. Vue3 vue-cli、create-react-app、vite 创建vue/react项目(笔记)
  7. Spark:大数据的“电光石火”
  8. C8051单片机:外部引脚与功能、内部结构与单元
  9. 激光雷达和3D点云算法
  10. 快速回顾 MySQL:联表查询