Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >C语言malloc函数的功能及用法

C语言malloc函数的功能及用法

作者头像
全栈程序员站长
发布于 2022-06-27 13:29:17
发布于 2022-06-27 13:29:17
1.1K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

关于C语言malloc函数

函数介绍

malloc(memory allocation) 中文名称:动态内存分配 用于申请一块连续的指定大小的内存块区域以void*类型返回分配的内存区域地址,当无法知道内存具体位置的时候,想要绑定真正的内存空间,就需要用到动态的分配内存。

应用举例1

关于C语言动态申请数组(整形数据类型)空间的应用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include<stdio.h>
#include<malloc.h>

void A()
{ 
   
	int n;//数组元素个数
	int *add;
	scanf("%d",&n);
	add=(int *)malloc(sizeof(int)*n);//内存申请
	for(int i=0;i<n;i++)
	{ 
   
		scanf("%d",&add[i]);
	}
	for(int i=0;i<n;i++)
	{ 
   
		printf("%d",add[i]);
	}
}

int main()
{ 
   
	A();
	return 0;
}

应用举例2

C语言动态申请数组(结构体)空间的应用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>//包含malloc函数的头文件

struct Item//定义结构体
{ 
   
	char name[20];
	int num;	
};

struct Item *I;//申请Item类型的指针

int A()//进行内存申请
{ 
   
	int i,j;
	int n;//申请的数量
	scanf("%d",&n);
	I=(struct Item*)malloc(sizeof(struct Item)*n);
	return n;	
}

int Input()//数据输入函数
{ 
   
	int n=A();
	int i,j;
	for(i=0;i<n;i++)
	{ 
   
		printf("%d Name:",i+1);
		scanf("%s",&I[i].name);
		printf("num:\n");
		scanf("%d",&I[i].num);
	}
	return n;	
}

void output()//数据输出函数
{ 
   
	int n=Input();
	for(int i=0;i<n;i++)
	{ 
   
		printf("%d |",i);
		printf("Name:%s ",I[i].name);
		printf("num:%d\n",I[i].num);
	}
}

int main()
{ 
   
	output();
	return 0;
}

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/133026.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年6月9,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
c语言之 malloc函数详解「建议收藏」
一、原型:extern void *malloc(unsigned int num_bytes);
全栈程序员站长
2022/09/07
1.4K0
C语言之malloc函数「建议收藏」
malloc的全称是memory allocation,中文叫动态内存分配,当无法知道内存具体位置的时候,想要绑定真正的内存空间,就需要用到动态的分配内存。
全栈程序员站长
2022/09/01
8980
C语言进阶(十二) - 动态内存管理
void* malloc(size_t size); 头文件<stdlib.h>
怠惰的未禾
2023/04/27
5960
C语言进阶(十二) - 动态内存管理
C语言实例_实现malloc与free函数完成内存管理
malloc函数用于在堆(heap)中分配指定大小的内存空间,并返回一个指向该内存块的指针。
DS小龙哥
2023/08/24
6220
C语言实例_实现malloc与free函数完成内存管理
C语言万字基础笔记总结(三)
- 例:编写一个函数sum,由用户输入**参数n**,计算1+2+...+(n-1)+n的**结果并返回**。
远方的星
2021/08/02
9730
C语言万字基础笔记总结(三)
[C语言]动态内存管理与柔性数组
1. 栈区( stack ):在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结
IT编程爱好者
2023/04/12
3640
[C语言]动态内存管理与柔性数组
C语言动态内存管理超详解
但是对于空间的需求,不仅仅是上述的情况。有时候我们需要的空间大小在程序运行的时候才能知道,那数组的编译时开辟空间的方式就不能满足了。 C语言引入了动态内存开辟,让程序员自己可以申请和释放空间,就比较灵活了。
fhvyxyci
2024/09/24
2270
C语言动态内存管理超详解
C语言——动态内存分配
从名字上来看,动态内存分配就是可以动态调整内存空间,那么我们为什么要进行动态内存开辟呢?
用户11352420
2024/11/07
1940
C语言——动态内存分配
c语言指针的有关总结
像我们可以写程序来操纵计算机内存这样子。 或者我们可以这样认为,物理内存是可以看得见,摸得着的,而虚拟内存反之。有关对虚拟内存的更深的认识点击这里虚拟内存
兰舟千帆
2022/07/17
3850
c语言指针的有关总结
C语言从入门到实战——动态内存管理
在C语言中,动态内存管理是指程序运行时,通过调用特定的函数动态地分配和释放内存空间。动态内存管理允许程序在运行时根据实际需要来分配内存,避免了静态内存分配在编译时就确定固定大小的限制。
鲜于言悠
2024/03/20
3380
C语言从入门到实战——动态内存管理
回溯1:动态内存管理与C语言实践
在C语言中,内存管理是一个非常重要的部分,尤其是动态内存管理。程序在运行时所需的内存大小往往是未知的,因此无法依赖编译时的静态内存分配。在这种情况下,动态内存管理成为程序员处理复杂数据结构时的有力工具。本篇文章将详细讲解C语言中的动态内存管理原理、常用函数及其典型应用,并通过相关代码示例来论证。
用户11289931
2024/11/24
3420
【C语言】自学终极笔记
函数包括:函数首部(第一行)+函数体(‘{’+内容+‘}‘),函数体=函数声明(即函数原型)+执行部分。
SarPro
2024/02/20
1860
【C语言】自学终极笔记
malloc函数具体解释
一、原型:extern void *malloc(unsigned int num_bytes);
全栈程序员站长
2022/07/13
6180
C 语言中的 malloc,free,calloc,realloc
malloc函数 原型:extern void* malloc(unsigned int size); 功能:动态分配内存; 注意:size 仅仅为申请内存字节大小,与申请内存块中存储的数据类型无关,故编程时需要通过以下方式给出:长度 * sizeof(数据类型); 示例: //动态分配内存,输入5个数据,并把低于60的值打印出来 #include <stdio.h> #include <stdlib.h> int main() { int *ptr = (int *)ma
村雨遥
2022/06/15
4830
【C语言】动态内存的管理
1. 栈区(stack):在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内
用户11290673
2024/09/25
1170
【C语言】动态内存的管理
C语言基础总结
我学习的第一门编程语言是Java,所以之前一直没有系统学习过C语言。这篇文章主要就是我学习过程的一个总结,方便以后复习查看。
害恶细君
2024/09/16
2210
C语言基础总结
【C语言】动态内存管理大总结
有了动态内存的开辟,那我们自然就要有回收和释放,C语言提供了另外一个函数free,专门是用来做动态内存的释放和回收的,函数原型如下 :
平凡的人1
2022/11/15
4370
【C语言】动态内存管理大总结
C语言——动态内存管理
但是上述的开辟空间的方式有两个特点: 1. 空间开辟大小是固定的。 2. 数组在申明的时候,必须指定数组的长度,它所需要的内存在编译时分配。
小李很执着
2024/06/15
1220
C语言——动态内存管理
C语言 | C++动态分配与静态分配的区别
所谓动态内存分配就是指在程序执行的过程中动态地分配或者回收存储空间的分配内存的方法。动态内存分配不象数组等静态内存分配方法那样需要预先分配存储空间,而是由系统根据程序的需要即时分配,且分配的大小就是程序要求的大小。
小林C语言
2020/12/27
3.3K0
C语言 | C++动态分配与静态分配的区别
C语言入门系列之10.结构体和共用体
引入: 有时需要将不同类型的数据组合成一个有机的整体,以便于引用。 例如,一个学生有学号、姓名、性别、年龄、地址等属性,需要定义int num; char name[20]; char sex; int age; int char addr[30];等属性,如下:
cutercorley
2020/07/23
1.3K0
C语言入门系列之10.结构体和共用体
相关推荐
c语言之 malloc函数详解「建议收藏」
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验