广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >c语言malloc函数的用法示例和意义
  • 951
分享到

c语言malloc函数的用法示例和意义

摘要

目录malloc函数原型malloc函数头文件malloc函数返回值malloc函数使用注意事项malloc函数使用形式free函数当我们需要做一个成绩管理系统,人数可能为全校学生,

当我们需要做一个成绩管理系统,人数可能为全校学生,也可能为一个班的学生,当我们开辟一个班的数组大小时,如果要存储整个学校的人数时,会出现内存不够用的情况;当我们开辟全校人数大小的数组时,输入一个班人数的大小时,会出现内存浪费的情况。
为了应对上述问题,我们引入malloc函数。
malloc时动态内存分配函数,用于申请一块连续的指定大小的内存块区域以void*类型返回分配的内存区域地址

malloc函数原型

extern void *malloc(unsigned int num_bytes);

意为分配长度为num_bytes字节的内存块

malloc函数头文件

#include<malloc.h>

malloc函数返回值

如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。

malloc函数使用注意事项

malloc函数的返回的是无类型指针,在使用时一定要强制转换为所需要的类型。
**(敲黑板)重点:在使用malloc开辟空间时,使用完成一定要释放空间,如果不释放会造内存泄漏。
在使用malloc函数开辟的空间中,不要进行指针的移动,因为一旦移动之后可能出现申请的空间和释放空间大小的不匹配

malloc函数使用形式

关于malloc所开辟空间类型:malloc只开辟空间,不进行类型检查,只是在使用的时候进行类型的强转。
举个例子:‘我’开辟你所需要大小的字节大小空间,至于怎么使用是你的事
mallo函数返回的实际是一个无类型指针,必须在其前面加上指针类型强制转换才可以使用
指针自身 = (指针类型*)malloc(sizeof(指针类型)*数据数量)

	int *p = NULL;
	int n = 10;
	p = (int *)malloc(sizeof(int)*n);

在使用malloc函数之前我们一定要计算字节数,malloc开辟的是用户所需求的字节数大小的空间。
如果多次申请空间那么系统是如何做到空间的不重复使用呢?
在使用malloc开辟一段空间之后,系统会在这段空间之前做一个标记(0或1),当malloc函数开辟空间如果遇到标记为0就在此开辟,如果为1说明此空间正在被使用。

free函数

作用:释放malloc(或calloc、realloc)函数给指针变量分配的内存空间。
注意:使用后该指针变量一定要重新指向NULL,防止悬空指针(失效指针)出现,有效规避错误操作。

int main()
{
	int *p = (int *)malloc(sizeof(int));
	*p = 100;
	free(p);
	p = NULL;
	return 0;

free函数在释放空间之后,把内存前的标志变为0,且为了防止数据泄露,它会把所释放的空间用cd进行填充。

到此这篇关于C语言malloc函数的用法示例和意义的文章就介绍到这了,更多相关c语言malloc函数用法内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: c语言malloc函数的用法示例和意义

本文链接: https://www.lsjlt.com/news/174436.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • c语言malloc函数的用法示例和意义
    目录malloc函数原型malloc函数头文件malloc函数返回值malloc函数使用注意事项malloc函数使用形式free函数当我们需要做一个成绩管理系统,人数可能为全校学生,...
    99+
    2022-12-08
    c语言malloc函数用法 malloc函数作用 malloc函数详解 free函数详解
  • c语言malloc函数的用法是什么
    malloc函数是C语言中用来动态分配内存空间的函数。它的声明如下:```cvoid* malloc(size_t size);``...
    99+
    2023-08-15
    c语言 malloc
  • c语言malloc函数的作用是什么
    malloc函数的作用是在内存中动态分配一块连续的空间,并返回该空间的首地址。它可以用来申请一定大小的内存空间,以便在程序中使用。这...
    99+
    2023-10-20
    c语言
  • C语言中的putchar函数示例
    目录putchar函数介绍:搭建环境:函数原型:讲解putchar函数:putchar的返回值:总结:putchar函数介绍: putchar函数函数几乎是在整个C语言中最没有知名度...
    99+
    2022-12-08
    C语言putchar函数 putchar函数
  • c语言abort函数实例用法
    1、abort函数的作用是异常终止一个进程,意味着abort后面的代码将不再执行。 2、当调用abort函数时,会导致程序异常终止,而不会进行一些常规的清除工作。 实例 #inc...
    99+
    2022-11-12
  • C语言基础函数用法示例详细解析
    目录函数函数定义函数一般格式C语言函数分类库函数库函数的分类库函数的学习自定义函数函数的参数实际参数形式参数函数的调用传值调用传址调用无参函数调用函数的声明和定义函数的声明函数的定义...
    99+
    2022-11-12
  • C语言中库函数的示例分析
    这篇文章主要为大家展示了“C语言中库函数的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C语言中库函数的示例分析”这篇文章吧。1 返回整数的getchar函数代码:#include<...
    99+
    2023-06-29
  • 你知道C语言中#和##表示的意义吗
    目录1.#2.##3.总结如标题,这篇文章会讲解C语言中的#和##是啥意思。我相信,大部分朋友应该都没怎么用过,这两个玩意的使用条件相当苛刻。 #用于把一个宏参数直接转换为相应的字符...
    99+
    2023-05-14
    C语言# ##意义 C语言# ##区别 C语言# ##
  • C语言的函数怎么定义和使用
    本篇内容主要讲解“C语言的函数怎么定义和使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言的函数怎么定义和使用”吧!关于函数函数是C语言的基本单元,函数中包含实现程序功能的代码。C语言程序...
    99+
    2023-06-30
  • C语言中函数递归的示例分析
    这篇文章主要介绍C语言中函数递归的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!什么是递归?递归(recursion):程序调用自身的一种编程技巧。如何理解函数递归:从调用自身层面:函数递归就是函数自己调用自...
    99+
    2023-06-29
  • C语言中栈的结构和函数接口的使用示例
    目录一、栈的结构二、栈的函数接口1. 初始化和销毁2. 入栈和出栈3. 访问栈顶元素以及判空和元素个数一、栈的结构 栈:一种操作受限的线性表,只允许在线性表的一端进行插入和删除操作,...
    99+
    2023-02-14
    C语言栈的结构 C语言栈的函数接口
  • C语言中队列的结构和函数接口的使用示例
    目录一、队列的结构二、队列的函数接口1. 初始化和销毁2. 入队和出队3. 访问队头和队尾元素4. 判空和元素个数一、队列的结构 队列:一种操作受限的线性表,只允许在线性表的一端进行...
    99+
    2023-02-14
    C语言队列结构 C语言函数接口
  • C语言示例讲解ifelse语句的用法
    目录1、前言2、if语句的语法结构3、关于if else语句的示例4、if else 书写形式的对比5、例子1、前言 (1)C语言是结构化的程序设计语言。C语言的三种基本程序结构分别...
    99+
    2022-11-13
  • c语言中函数的定义方法是什么
    在C语言中,函数的定义通常包含以下几个部分:1. 返回类型:函数可以有不同的返回类型,如int、float、void等,用来表示函数...
    99+
    2023-09-29
    c语言
  • C语言中main()函数参数问题的示例分析
    这篇文章主要介绍了C语言中main()函数参数问题的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。#include<stdio.h>void m...
    99+
    2023-06-29
  • C语言浅析函数的用法
    目录问题引入函数C语言中函数的语法形式问题例子函数的调用过程函数声明变量声明数组声明问题引入 有时候,我们经常需要在一个程序中,对一个数组进行 键盘输入,打印数组元素值。 有些代码块...
    99+
    2022-11-13
  • C语言中变参函数传参的实现示例
    目录背景引入问题分析指针大小参数位置排布解决问题额外的测试总结参考资料背景引入 近期在看一本书,叫做《嵌入式C语言自我修养》,写的内容对我帮助很大,是一本好书。在第6章,GNU C编...
    99+
    2022-11-12
  • C语言模拟实现strstr函数的示例代码
    目录strstr函数介绍BF算法介绍BF算法模拟实现strstr函数KMP算法介绍KMP算法模拟实现strstr函数strstr函数介绍 C语言提供了字符串匹配函数 strstr 函...
    99+
    2022-11-13
  • C语言中qsort函数的介绍与用法实例
    目录一.qsort函数是什么 二.使用qsort排序-以升序为例1.整形数组排序2.字符数组排序3.字符指针数组排序4.结构体数组排序5.浮点型数组排序三.使用冒泡排序思想...
    99+
    2022-11-12
  • c语言函数的定义与调用方法是什么
    C语言函数的定义和调用方法如下:1. 函数的定义:在C语言中,函数的定义包括函数的返回类型、函数名、参数列表和函数体。函数的定义一般...
    99+
    2023-08-18
    c语言
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作