首页 > 系统相关 >C语言动态分配内存的函数

C语言动态分配内存的函数

时间:2023-07-13 09:14:28浏览次数:34  
标签:malloc 函数 free C语言 分配内存 内存 分配 size

今天在学习中碰见了动态分配内存有关的函数:malloc realloc calloc free。以下是详细的记录

"动态内存":在程序运行期间,动态分配内存空间,一般是在"堆,heap"空间上分配。

malloc: memory allocate 内存分配
realloc: repeat allocate 再分配——重新分配:一次内存分配完成之后,后面用的时候,发现不够用,再分配。
calloc: clear allocate 分配内存时同时清 0
free :释放
动态分配的内存,需要在你不用的时候,需要手动释放free,否则这个空间一直时你的。
动态内存分配:如果分配了空间,就一直存在,直到你手动free或者进程结束。

有时候,把动态分配的内存“匿名内存”,“匿名内存”只能通过他的指针去访问。

一、malloc 内存分配

#include<stdlib.h>//malloc的头文件
  malloc向系统申请一段连续的大小为size字节的空间,并且把内存的首地址返回(void*)
   
    void* malloc(size_t size);
  
  size: 你要分配多大的空间,单位是字节,要分配多大,就输入。
  返回值:
        内存开辟成功,返回开辟空间的首地址(void*)通用指针类型
        不成功,返回NULL

标签:malloc,函数,free,C语言,分配内存,内存,分配,size
From: https://www.cnblogs.com/lzzcforever/p/17549388.html

相关文章

  • 直接“printf”到char数组字符串——C语言snprintf函数
    注:我写这个只是为了备注并介绍一下这个神器。有关它的更详细用法,互联网的各个角落都不缺少资料。如果您和曾经的我一样是C语言的初学者,您有可能时常遇到那些“奇异”的字符串处理问题,例如,int里的数转成char数组字符串类型,在char数组中间插入或者删除什么东西,等等。要是采用传统方......
  • C语言-04
    自定义数据类型——初识/*引入:学生:姓名,学号,年龄,成绩请为学生们专门定制一个类型(创造一个类型)结构体格式:struct标识符//标识符即自定义类型的名称{成员;//自己设置};//这里要注意不要漏......
  • vue2-生命周期-了解生命周期和生命周期函数的概念
    1.生命周期&生命周期函数生命周期(LifeCycle)是指一个组件从创建->运行->销毁的整个阶段,强调的是一个时间段。生命周期函数:是由vue框架提供的内置函数,会伴随者组件的生命周期,自动按次序执行。注意:生命周期强调的是时间段,生命周期函数强调的是时间点。......
  • 魔法函数 __repr__() 和 __str__()的区别
    1'''2__repr__()和__str__()都是Python中的特殊方法,用于定义对象的字符串表示形式。它们之间的区别如下:31.__repr__(self):返回一个字符串,用于表示对象的“官方”字符串表示形式。这个字符串应该是可以用来重新创建对象的,并且应该尽可能准确和详细。4......
  • ORACLE instr函数
    语法     系列函数:INSTR系列函数总共有5个,常用为instr函数,其他4个都是变体。这些函数之间区别仅在于入参string数据类型的限制。Instr函数入参string类型要求为:char, varchar2, nchar(采用unicode标准字符集存储), nvarchar2, clob(characterlargeobject......
  • 111.在进行函数参数以及返回值传递时,可以使用引用或者值传递,其中使用引用的好处有哪
    111.在进行函数参数以及返回值传递时,可以使用引用或者值传递,其中使用引用的好处有哪些?对比值传递,引用传参的好处:1)在函数内部可以对此参数进行修改2)提高函数调用和运行的效率(因为没有了传值和生成副本的时间和空间消耗)如果函数的参数实质就是形参,不过这个形参的作用域只是在函......
  • 112.说一说strcpy、sprintf与memcpy这三个函数的不同之处
    112.说一说strcpy、sprintf与memcpy这三个函数的不同之处1.复制的内容不同。strcpy只能复制字符串,而memcpy可以复制任意内容,例如字符数组、整型、结构体、类等。2.复制的方法不同。strcpy不需要指定长度,它遇到被复制字符的串结束符"\0"才结束,所以容易溢出。memcpy则是根据其第3......
  • c语言学习4
    一、数组什么是数组:变量的组合,是一种批量定义相同类型变量的方式定义:类型名数组名[数量];intarr[5];注意:数组的长度一旦确定,无法改变使用:数组名[下标];下标:从0开始,范围:0~数量-1遍历:把数组的数据从头到尾显示或访问一般与for循环配合,把循环变量i当做数组下标初始化:类......
  • 用c语言写一个计算自己活了多少天的代码
    #include<stdio.h>//初始化数组保存天数inta[12]={31,28,31,30,31,30,31,31,30,31,30,31};//普通年intb[12]={31,29,31,30,31,30,31,31,30,31,30,31};//闰年//判断闰年intLeap(intyear){if((year%4==0&&year%100!=0)||(year%400==0)){return1;......
  • C语言(四)
    目录9.结构体9.1引入9.2语法9.3位域与柔性数组9.3.1位域9.3.2柔性数组10.联合体11.枚举12.typedef关键字12.1typedef和struct12.2typedef和函数指针12.3typedef与#define的区别13.C程序组成13.1.c文件的组成13.1.1头文件包含13.1.2宏定义13.1.3声明13.1.4条件编译13.2.h文......