c语言:malloc函数的简介
文章目录
- 一、为什么需要malloc函数?
- 二、如何使用malloc函数?
- 三、用malloc函数自定义数组长度
一、为什么需要malloc函数?
用于解决传统数组以下缺点。
①传统数组的长度必须要事先指定。
②传统数组的内存无法手动释放。
③传统数组的长度定义后无法更改
④无法跨函数使用
二、如何使用malloc函数?
例:
#include <stdio.h>
#incldue <malloc.h>
int main (void)
{int i = 1;int * p = (int *)malloc(4);* p = 1;free(p);return 0;
}
- 头文件需要添加malloc.h
- malloc函数需要一个且仅需要一个整形形参
- 形参表示为本程序分配4个字节
- malloc函数只能返回第一个字节的地址
- int * p = (int *)malloc(4);本语句一共分配了8个字节
- 指针变量p本身占的是静态分配,而p所指向的地址是动态分配的
- free ( p )表示将p所指向的内存释放掉
三、用malloc函数自定义数组长度
例:
#include <stdio.h>
#include <malloc.h>
int main (void)
{ int a[5];int len,i;int *parr;printf("请输入您要存放的元素的个数:");scanf("%d",&len);parr = (int)malloc(4*len);for(i=0;i<len;++i){scanf("%d",&parr[i]);}for(i=0;i<len;++i)printf("%d\n",parr[i]);return 0;
}
说明:
- 本函数中定义了一个parr[len]的数组,该数组的长度可以自行定义。
- 如果想要对该数组长度进行增加或者缩小,可以使用realloc函数,
使用方法:realloc(数组名,需要变成的个数)
该博客引用了郝斌老师c语言教程的内容。
c语言:malloc函数的简介相关推荐
- linux c语言 malloc动态分配指针,C语言malloc函数为一维,二维,三维数组分配空间...
c语言允许建立内存动态分配区域,以存放一些临时用的数据,这些数据不必在程序的声明部分定义,也不必等到函数结束时才释放,而是需要时随时开辟,不需要时随时释放,这些数据存储在堆区.可以根据需要,向系统申请 ...
- c语言malloc函数用法_小白对c语言数组的基础总结
数组 数组是一系列相同类型元素有序的集合. 数组的定义: 一般形式为: 类型符 数组名 [常量表达式] 如 int a[5]; 表示数组有五个元素,a[0]-a[5],不存在元素a[5]. *注意: ...
- c语言malloc函数程序,c语言 malloc函数详解
谈到malloc函数相信学过c语言的人都很熟悉,但是malloc底层到底做了什么又有多少人知道. 1.关于malloc相关的几个函数 关于malloc我们进入Linux man一下就会得到如下结果: ...
- C语言malloc函数的功能及用法
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到网站 点击跳转浏览. https://blog.csdn.net/qq_26501341/article/d ...
- c语言malloc申请三维数组,C语言malloc函数为一维,二维,三维数组分配空间
c语言允许建立内存动态分配区域,以存放一些临时用的数据,这些数据不必在程序的声明部分定义,也不必等到函数结束时才释放,而是需要时随时开辟,不需要时随时释放,这些数据存储在堆区.可以根据需要,向系统申请 ...
- C语言malloc函数为一维,二维,三维数组分配空间
c语言允许建立内存动态分配区域,以存放一些临时用的数据,这些数据不必在程序的声明部分定义,也不必等到函数结束时才释放,而是需要时随时开辟,不需要时随时释放,这些数据存储在堆区.可以根据需要,向系统申请 ...
- c语言 malloc 函数用法
函数声明: Tips: void的字面意思是"无类型",void *则为"无类型指针",void *可以指向任何类型的数据. malloc 函数申请空间需要使用 ...
- C语言-malloc()函数与calloc()函数的使用及区别
1.malloc()函数 功能 申请堆内存 所需头文件 #include<stdlib.h> 函数原型 void *malloc(size_t,size); 参数(size) 所申请的一块 ...
- c语言malloc函数用法_C语言内存模型!小本本记起来啊!
一.C语言的内存分配模型 1.程序代码区:存放函数体的二进制代码. 2.全局区数据区:全局数据区划分为三个区域.全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全 ...
最新文章
- MyBatis接口的简单实现原理
- linux shell参数传递、获取方式
- AIS 2022 | ACL-IJCAI-SIGIR顶级会议论文预讲会,现开启论文征集
- python的回收机制_Python垃圾回收机制【人生苦短,我用python】-阿里云开发者社区...
- 面试大厂应该注意哪些问题?隔壁都馋哭了
- 在工程中最常用的 vim使用技巧
- 《WF编程》系列之30 - 基本活动:错误处理
- php生成链接列表,根据URL链接和抛文本生成链接a标签的PHP函数
- 基于 Jenkins + JaCoCo 实现功能测试代码覆盖率统计
- 刚入行的测试工程师如何自学软件测试【下篇】-- 软实力
- 记忆网络之在对话系统中的应用
- linux vi指令回退,Linux命令 vi vim
- Tech Blog by Eason!
- 咸鱼Maya笔记—NURBS放样成型法
- 程序员薪酬高达 462 万元:是怎么回事?
- 中企海外周报 | 熊猫智能公交车将登陆欧洲,中比能源携手美国S公司签订3亿元电芯供货协议...
- 更名通知 || 初心未改,只为更好,好嗨游戏来了
- 两种方法设置 .NET/C# 项目的编译顺序,而不影响项目之间的引用
- 解密支付系统,来看如何构建理想的支付系统架构
- Java基础 项目实例五 简易聊天系统
热门文章
- 以太坊白皮书_以太坊发展历程
- jmeter 设置环境变量
- Visual Studio Code(VScode)设置为中文界面
- Flowable 菜单说明
- 原生JavaScript轮播图效果实现
- php数组获取差集,php数组求差集问题
- java map大小_Java中HashMap的size()方法: HashMap.size() - Break易站
- Python bin 函数 - Python零基础入门教程
- jq之slideup()
- 项目七samba服务器,Centos 7 配置Samba服务器