朝花夕拾 · C语言 | 内存篇

【C编程系列】之朝花夕拾:(1) 基础知识 DATE: 2019-3-8 前言 本系列为重读C/C++ Primer技术书的读书笔记。 阅读详情

一.malloc,calloc

    void *malloc(size_t  size);

    功能:向堆区申请空间
    参数:
            size:申请的空间字节数

    返回值:

            成功:返回申请到的空间首地址

            失败:NULL


    void free (void * ptr)
    功能:释放申请的堆区空间
    参数:
            ptr:申请到的堆区的空间首地址

    void calloc( size_ t nmemb, size_ t size)

    功能:向堆区申请数组空间,并清空成0(与malloc的主要区别)
    参数:
    nmemb :申请的数组的元素个数
    size:数组中的每个元素占的字节数返回值:
    成功:返回申请到的空间首地址

    失败:NULL

    二.堆与栈

    堆区空间:

    • 在函数中开辟的空间,希望随着函数结束,该空间仍然存在,可以在堆上开辟。
    • 当需要的空间比较大时,可以去堆上开辟(栈空间相比太小,默认8MB,而堆空间取决于你的物理内存和虚拟内存)

    堆和栈的区别:

    栈区:

    1.栈区用来保存局部变量,函数的形参返回值及函数调用的保护线程;

    2.栈区由操作系统自动管理;

    3.栈区默认大小8M,比堆区空间小;

    4.栈的访问效率比堆的访问效率高。

    5.随函数而生,随函数而死。函数执行完毕,栈上的变量立刻销毁。

    堆区:

    程序员手动管理。必须主动调用 malloc、calloc 去申请,用完后必须调用 free 去释放。如果忘了 free,这块内存直到程序结束才会被操作系统回收(内存泄漏)。

    AC360变频器使用案例 AC360变频器使用案例! 阅读详情

    相关推荐

    【脑电绘图教程 2】使用Brainstorm进行脑电处理及源定位

    Brainstorm 是一个开源应用程序,支持MEG、EEG、fNIRS、ECoG、深度电极和其他电生理学的数据分析,尤其用于MEG、EEG的源定位。Brainstorm的主要优点是其简单直观的图形界面,不需要进行任何编程,即可上手MEG、EEG分析,此外,它还支持多种数据类型(基本上EEGLab支持的,它都支持),并且具有数据批量处理功能,可以很方便的分析自己的数据。

    qq_40735196的博客 1万+

    朝花夕拾 · C语言 | 基础篇

    你是否曾与C语言初次相遇,许多概念一知半解。如今带你重走来时路,从头梳理语法、指针、内存、结构体等,陪你扫清底层盲区,为嵌入式开发筑牢根基。以此系列博客,记录复盘全过程。

    Vvc_Python的博客 390

    工业质检新利器:手把手教你用AD-DINOv3实现零样本缺陷检测(附MVTec AD实战)

    本文详细介绍了AD-DINOv3框架在工业质检中的应用,通过零样本异常检测技术解决传统方法的标注成本高和泛化能力弱问题。文章包含技术原理解析、MVTec AD数据集实战部署、模型训练流程及工业部署优化技巧,帮助读者快速掌握这一创新技术。

    seed的博客 764

    朝花夕拾 · C语言 | 结构体篇

    int num;结构体类型 变量名;int mon;int day;}mydate;

    Vvc_Python的博客 357

    DMA+Timer 生成 PWM 波形错位问题分析与解决

    本文深入分析了DMA与Timer协同生成PWM波形时出现的错位问题,揭示了DMA传输启动时机与定时器溢出中断的微妙关系。通过占空比强制清零法和预装载值调校技巧,提供了有效的解决方案,并总结了PWM+DMA配置的最佳实践,帮助开发者避免类似问题。

    weixin_29191081的博客 348

    iOS逆向实战:绕过SSL Pinning抓取ChatGPT设备令牌

    在移动应用安全与网络协议分析领域,中间人攻击是一种核心的流量拦截与分析技术。其原理是在客户端与服务器之间插入一个代理节点,通过伪造数字证书来解密和窥探HTTPS加密流量。这项技术的工程价值在于,它使开发者能够调试API、分析通信协议以及实现自动化集成。然而,许多高安全要求的应用(如金融、社交类App)会采用SSL Pinning(证书绑定)技术来抵御此类攻击,这为逆向工程带来了挑战。本文聚焦于一个具体的应用场景:如何针对启用了SSL Pinning的ChatGPT iOS客户端,通过特定的工具链(如Trol

    weixin_28235889的博客 976

    朝花夕拾 · C语言 | 数组篇

    数组一般形式:类型说明符 数组名 [常量或常量表达式];类型说明符:基本数据类型、构造数据类型(不能是void类型)。说明数组中保存的数据的数据类型。数组名:遵循标识符的命名规则。常量或常量表达式:数组中可以保存的元素的个数。int a[10];sizeof (a);//40字节//32字节//20字节注意:常量表达式中可以包括常量和符号常量,不能包含变量。也就是说,C语言不允许对数组的大小作动态定义,即数组的大小不依赖于程序运行过程中变量的值。例如,下面这样定义数组是不行的。

    Vvc_Python的博客 719

    EV1527、PT2262傻傻分不清?一文讲透常见315/433MHz遥控编码协议区别与选型

    本文深度对比了EV1527、PT2262和SC5262三种常见的315/433MHz遥控编码协议,详细解析了它们的技术特点、成本效益和适用场景。EV1527作为低成本方案的首选,特别适合智能家居和简易安防设备;PT2262在稳定性和兼容性上表现优异;而SC5262则在安全性方面具有显著优势。文章还提供了实用的选型框架和工程建议,帮助开发者在不同应用场景中做出最优决策。

    weixin_33640562的博客 349

    朝花夕拾 · C语言 | 指针篇

    基类型 *变量名;基类型:该指针指向的空间存储的数据的数据类型:int、char、float 、double 、void、构造数据类型* : 类型说明符,说明后面的变量是一个指针变量名:遵循标识符的命名规则p开头指针变量中保存的地址,是该数据类型的首地址。

    Vvc_Python的博客 409

    SIWAVE+ADS提取PCB走线寄生参数

    本文将介绍一种很适合PCB走线提取寄生电感等参数的方法,即是通过SIWAVE将PCB走线的S参数提取出来,再通过ADS将S参数转换成电感、电容值。

    sinat_15150363的博客 1765

    RK3568平台开发系列讲解:UBOOT详细介绍

    U-boot是一款广泛使用的开源引导加载程序,支持多种嵌入式操作系统和处理器架构。其主要功能包括系统上电时的硬件初始化、引导操作系统内核等。U-boot的引导流程通常包括Boot Code、idbloader.img、uboot.img、boot.img和rootfs.img等步骤。启动U-boot时,通过Debug串口连接板卡,按下ctrl+c键可进入U-Boot命令行模式。U-boot启动过程中会执行一系列初始化操作,如打印系统信息、初始化内存、加载内核设备树、初始化I2C、PMIC电源芯片、DRM框架

    内核笔记 808

    朝花夕拾 · C语言 | 预处理命令篇

    预处理:展开和#相关的代码:展开头文件、展开宏、处理预处理命令编译:将c语言程序转换成汇编指令。汇编:将汇编指令转换成二进制可执行程序链接:负责链接系统的函数/库函数的实现(链接函数)

    Vvc_Python的博客 386

    【知识图谱】neo4j安装与配置_社区版_2025(附完整安装软件包)

    (经历过各种版本NEO4J,遇见杂七杂八的各种问题,也看过非常多很好的教程,特此来分享一下,为大家排排坑。

    知识靠谱的博客 2万+

    朝花夕拾 · C语言 | 函数篇

    此外 ,%f 不能接收double型,且双引号里写了什么,在输入时也要相同,所以除了格式控制符之外尽可能少写其他数据。八进制与十六进制也可指定输出域宽,如%8o表示输出八位八进制数,%8x表示输出八位十六进制数;此外,%lo与%lx则可表示以八和十六进制输出long型。在输入整型时,可以使用空格,Tab与Enter隔开两数,除此之外用其他字符则会直接中断输入,舍弃后续读入的数字。域宽输出: 7. %nd 以n位域宽输出,若数据大于n位则以实际位数输出,否则左侧补空。

    Vvc_Python的博客 349

    Probability and Statistics - 4th edition

    Probability and Statistics - 4th edition

    霍尼韦尔SoftMaster使用说明

    霍尼韦尔SoftMaster使用说明

    朝花夕拾C

    偶然见看到这个问题:structure alignment 这些C的问题都是相当基础而且经典的。 然而我在编译的途中,犯了个更加经典的错误,囧~决定重新拾起大一没学好的C,也好好记录下来。 直接拷贝的源代码,就加了一main函数,打印三个struct的size struct X { short s; /* 2 bytes */ /* 2 padding

    Make history... 470

    pscad IEEE标准系统搭建说明

    pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

    [朝花夕拾C语言]:指针的进阶学习

    指针到底是个啥呢?在指针里面(1.数组 2.数组指针 3.指针数组 4.函数指针 5.函数指针数组) 的基本概念和应用,如何区分!

    qq_44838021的博客 223

    华为的C语言编程规范.pdf

    华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

    【朝花夕拾】Android性能篇之(二)Java内存分配

    前言 转载请声明,转自【https://www.cnblogs.com/andy-songwei/p/9291186.html】,谢谢! 在内存方面,相比于C/C++程序员,咱们java系程序员算是比较幸运的,因为对于内存的分配和回收,都交给了JVM来处理了,而不需要手动在代码中去完成。有了虚拟机内存管理机制,也就不那么容易出现内存泄漏和内存溢出的问题了。...

    aw1070的博客 230

    C语言 0 写在前面

    本节内容如下:写在前面1——已有已行写在前面2——C语言 写在前面1——已有已行 学计算机已经好几年了,很多初学时觉得很难的问题在如今已经变得不再那么难以理解了。学了这几年,知识很零碎,很杂。年前的寒假就想要梳理一下学过的知识了,当时写了一些java有关的文章,写的时候总感觉哪里不对,后来才知道是顺序出现了问题。计算机知识其实也是有很强的连贯性的,不从头开始,有些地方就会变得很啰嗦。单从编程方面来...

    ZERO.ONE的博客 443

    C语言修炼——数组与函数全析!!!

    本篇包含了几乎所有数组与函数所需掌握的基础知识,篇幅较长。初学者需要耐心观看;同时,掌握本篇知识后推荐进入本篇的专栏,阅览《C语言修炼——扫雷游戏?冲冲冲!!!》,并完成项目实操,让自己对知识的掌握更上一层楼,或借此与本篇结合反复回看,弄清不通之处。ret_type fun_name(形式参数) {ret_type是函数返回类型fun_name是函数名( )中的是形式参数{ }中的是函数体我们可以将函数想象成做菜,食材是参数,函数(子程序)的结果是菜。

    Meanlong_的博客 2288

    C语言之精华总结!

     从研究生二年纪开始学习计算机也差不多两年了,一路走来,有很多的收获,也有不少的遗憾,现在正好有一段闲暇,就想对走过的路留下一些足迹,回忆。每个人都有自己不同的人生,说到这里,就是程序人生了,歌德在《浮士德》中说过:“如果不曾在悲哀中咀嚼过面包,不曾在哭泣中等待过明天,这样的人就不知道你——天的力量。”所以我想记下一些带给我悲哀,带给我哭泣的程序人生。其实学习计算机的基础课程是非常重要的,离散数学

    WiZiM404.COM 2431

    iOS基础---Block朝花夕拾

    Block是总最常用的iOS特性之一,常见的问题相信大家都知道,这里我们列一些不太常见的情形。 第一、block无法捕获C语言数组,如果想捕获C语言的数组,需要使用指针; 如: const char text[] = "hello"; void(^test)(void) = ^(void){ printf("%c",text[2]); };...

    u012413955的博客 479

    视触觉传感器:千赫兹采样率为何是机器人触觉的时间分水岭

    触觉传感器是机器人感知物理世界的关键部件,视触觉技术通过相机捕捉弹性体形变来实现触觉感知,空间分辨率已可达微米级。然而,传统视触觉系统多聚焦于“看得清”的静态细节,却忽略了“看得够快”的时间维度。人类皮肤中的快适应感受器对200~300赫兹振动最敏感,触觉事件如滑移前兆、应力脉冲等往往仅持续数毫秒,这要求采样系统至少具备千赫兹级帧率才能完整捕获动态触觉信息。千赫兹级视触觉并非单纯提高帧率,而是涉及光学曝光、数据传输、算法闭环延迟的系统工程,它使机器人能在毫秒内完成滑移检测、高频力控制、表面纹理识别及精密装配

    weixin_34167819的博客 219

    【朝花夕拾C语言】:memmove函数和my_memmove

    本文仔细介绍一下,最近学习的内存函数memmove函数的实现过程和实际my_memmove的具体实现代码,学了些知识点,还是想记录一下并和大家分享!

    qq_44838021的博客 690

    adeng朝花夕拾

    ============================C/C++基础拾遗===================================== 1.指针: 函数指针做函数参数 回调函数 语法现象 意义 实现什么效果 (1).间接赋值成立的三个条件 a.两个变量 b.建立关联 c. *p-> (2).函数指针做函数参数 a.调用的角度去理解:谁...

    a561287102360903的博客 165

    [朝花夕拾C语言]:排序函数qsort详细讲解

    通过对: 1.整型冒泡排序; 2.qsort函数对于排序捷运用,其中通过建立结构体指针,对相同的项进行比较; 3.对sizeof()和stelrn()的基本概念和基本运用的分析。 加深理解!

    qq_44838021的博客 570

    C语言之诡异

    "C之诡谲"C语言之精华总结!C之诡谲(上)从研究生二年纪开始学习计算机也差不多两年了,一路走来,有很多的收获,也有不少的遗憾,现在正好有一段闲暇,就想对走过的路留下一些足迹,回忆。每个人都有自己不同的人生,说到这里,就是程序人生了,歌德在《浮士德》中说过:“如果不曾在悲哀中咀嚼过面包,不曾在哭泣中等待过明天,这样的人就不知道你——天的力量。”所以我想记下一些带给我悲哀,带给我哭泣的程序人生。

    haoyuenan的专栏 2249
    上一篇: 朝花夕拾 · C语言 | 结构体篇
    下一篇: 朝花夕拾 · C语言 | 位运算篇
    剑指offer.
    博客等级 码龄3年 15粉丝 38原创
    评论
    成就一亿技术人!
    拼手气红包6.0元
    还能输入1000个字符
     
     条评论被折叠 查看
    添加红包

    请填写红包祝福语或标题

    个

    红包个数最小为10个

    元

    红包金额最低5元

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

    抵扣说明:

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

    余额充值