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

最近,本大王利用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:(关于数值)

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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值