C语言malloc函数详解(通俗易懂)

这篇具有很好参考价值的文章主要介绍了C语言malloc函数详解(通俗易懂)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

简单来说,malloc函数的作用是开辟一个空间来给你使用;

他包含在标准库中

#include<stdlib.h>

返回值是一个void*(可以简单理解为一个没人知道它是什么类型的指针),一般我们都要对结果进行类型转换;

void* malloc(size_t size)

我们通过malloc申请的空间是以字节为单位的,如malloc(1*1024*1024)则申请了1MB的空间;

如果申请失败了,如空间已满,则会返回0;

我们用一个简单的实例就能掌握malloc函数的用法

#include<stdio.h>
#include<stdlib.h>
main()
{
	int ry_01;
	int *a;
	scanf("%d",&ry_01);
	//相当于 int a[ry_01];
	a=(int*)malloc(ry_01*sizeof(int)); 
	free(a);
}

因为我们的a的类型是int*,而malloc返回的是void*,所以我们要通过(int*)来对malloc进行类型转换来得到我们需要的空间,可以是int也可以是double;

与malloc相对应的函数是free()

void free(void *ptr)

free的作用是将你用malloc函数开辟的空间释放,一般来说free函数是必须的,只要你用了malloc,就要free;

传入free的指针只能是你用malloc对应的那个指针,如果传入其他指针,是一定会报错的(0指针不会报错,因为free本质也是一个函数,它内部有一个检测程序);

但是我们平常写的小程序,我们不去free是没有影响的,因为程序在运行完后自动就将所有的空间全部释放了,但当我们在搞一个比较大的项目的时候,比如一个一直工作的服务器,这时候我们不去free,就会有很大的影响,程序一直运行,那malloc就会反复的开辟空间,直到空间被占满,然后就会报错中断程序。

所以养成free和malloc配套使用的习惯还是比较关键的文章来源地址https://www.toymoban.com/news/detail-401157.html

到了这里,关于C语言malloc函数详解(通俗易懂)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 详解5个C语言简单易懂小游戏

    我们通过5个简单易懂的小游戏来加强我们对C语言的认识,这五个小游戏不仅有单人,还有人机对战和人人对战。让我们在学习之余来上一局紧张刺激的小游戏吧! 我们要做5个小游戏,我们要 分别为5个小游戏创建一个头文件和一个源文件 。分别为game1.h/game1.c,game2.h/game2.

    2024年02月12日
    浏览(43)
  • 大数据之Hadoop3简单入门(一)(通俗易懂)

    目录 一. 大数据基础概论 1.1 何为大数据 2.1 大数据特点(4V) 2.1.1 Volume(大量) 2.2.2 Velocity(高速) 2.2.3 Varity(多样) 2.2.4 Value(低价值密度) 二. hadoop入门概述 2.1 什么是hadoop 2.1.1 概念 2.1.2 hadoop优势 2.1.3 hadoop不同版本区别 2.2  HDFS架构概述 2.3  Yarn架构概述 2.4 MapReduce架

    2024年02月02日
    浏览(43)
  • C 递归 详解(通俗易懂)

    目录 一、定义         1.概述         2.条件         3.比较 二、 如何理解递归?         1.函数调用其他函数示例 :          2.函数调用函数自身示例 :          3.函数调用自身的底层操作 :                  ①在主调函数调用被调函数之前——              

    2024年02月05日
    浏览(37)
  • java 可变参数 详解(通俗易懂)

    目录 一、概述: 二、格式: 三、注意事项(使用规范): 四、代码演示:         演示规范①~③:         演示规范④:         演示规范⑤:         课堂练习:         代码演示:         输出结果: 五、英文版本讲解:         java中,我们可以将 名称相同,

    2024年01月22日
    浏览(36)
  • C typedef 用法 详解(通俗易懂)

    目录 一、前言 二、为什么需要typedef ? 三、typedef的介绍和使用         1.简介         2.使用         3.示例                 eg1 :                 eg2 :                  eg3 :  四、总结         大家好,今天为大家带来的是typedef的内容分享。本篇博文算

    2024年02月10日
    浏览(42)
  • 平衡二叉树详解 通俗易懂

      平板就类似于一个世界,当诱惑降临的时刻,当人们心中的平衡被打破,世界就会变得混乱,最后留下的就是剩下孤独寂寞和失败。这种单调机械化的社会,经不起诱惑的侵蚀,很容易崩溃。最容易被侵蚀的,恰恰是最空虚的心灵,因此世界、社会的平衡对于秩序管理来说

    2024年02月13日
    浏览(33)
  • 【TCP】四次挥手(最强详解!!通俗易懂!!)

    目录 想要了解三次握手的话可以参考我的另外一篇博客 首先来了解一下FIN和ACK FIN ACK 接着我们再来具体的了解TCP四次挥手过程 转换为最最通俗理解方法: 【TCP】三次握手(最强详解!!通俗易懂!!)_是瑞穗的猫啊的博客-CSDN博客 FIN和ACK就是两个用于关闭连接过程中的两个

    2024年01月19日
    浏览(37)
  • 【TCP】三次握手(最强详解!!通俗易懂!!)

    SYN和ACK就是两个用于握手和确认建立连接的信号量 就是同步的意思,大概表示的就是发起请求 可以将SYN视为“打招呼”或 “发起请求”的信号 。 在TCP的三次握手过程中,客户端发送一个带有SYN标志的包给服务器,表示客户端请求建立连接。 SYN包中包含一个初始序列号(

    2024年02月03日
    浏览(35)
  • Unity 锚点 Anchors的通俗易懂详解

    一、锚点Anchors是什么 当你在Canvas下建子物体的时候,选中子物体就会自带四个△,如下 这个三角也可以是分开的,如下 值得一提的是,这四个三角只能组成一个矩形,或者一个点,例(矩形) 你是不可能给它搞成别的形状的,比如平行四边形,不信你去试。 既然我们不能

    2024年02月08日
    浏览(32)
  • C 非线性结构——树 万字详解(通俗易懂)

    目录 一、树的介绍         1.定义 :          2.相关概念 :          3.简单分类 :          4.相关应用 :  二、树的存储         1.二叉树的存储 :                  1° 二叉树连续存储                 2° 二叉树链式存储(常用)         2.普通树和森林的存储 :   

    2023年04月09日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包