码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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

    错误3:(关于数值)

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

  • 相关阅读:
    面试突击70:什么是粘包和半包?怎么解决?
    Wireshark与Nginx
    计算机网络——数据链路层功能概述、封装成帧、差错控制、流量控制与可靠传输机制
    (超详细)语音信号处理之特征提取
    python快速构建http服务
    golang数据结构与算法——递归、迷宫回溯和二叉树的遍历
    如何将 Langfuse 链接到自有 PostgreSQL 数据库并升级 PostgreSQL 版本
    【pytorch】深度学习准备:基本配置
    SpringCloud电商项目开发完整流程
    Python | Leetcode Python题解之第48题旋转图像
  • 原文地址:https://blog.csdn.net/myscratch/article/details/126410958
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号