文章目录

  • 一、为什么需要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;
}
  1. 头文件需要添加malloc.h
  2. malloc函数需要一个且仅需要一个整形形参
  3. 形参表示为本程序分配4个字节
  4. malloc函数只能返回第一个字节的地址
  5. int * p = (int *)malloc(4);本语句一共分配了8个字节
  6. 指针变量p本身占的是静态分配,而p所指向的地址是动态分配的
  7. 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函数的简介相关推荐

  1. linux c语言 malloc动态分配指针,C语言malloc函数为一维,二维,三维数组分配空间...

    c语言允许建立内存动态分配区域,以存放一些临时用的数据,这些数据不必在程序的声明部分定义,也不必等到函数结束时才释放,而是需要时随时开辟,不需要时随时释放,这些数据存储在堆区.可以根据需要,向系统申请 ...

  2. c语言malloc函数用法_小白对c语言数组的基础总结

    数组 数组是一系列相同类型元素有序的集合. 数组的定义: 一般形式为: 类型符 数组名 [常量表达式] 如 int a[5]; 表示数组有五个元素,a[0]-a[5],不存在元素a[5]. *注意: ...

  3. c语言malloc函数程序,c语言 malloc函数详解

    谈到malloc函数相信学过c语言的人都很熟悉,但是malloc底层到底做了什么又有多少人知道. 1.关于malloc相关的几个函数 关于malloc我们进入Linux man一下就会得到如下结果: ...

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

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到网站 点击跳转浏览. https://blog.csdn.net/qq_26501341/article/d ...

  5. c语言malloc申请三维数组,C语言malloc函数为一维,二维,三维数组分配空间

    c语言允许建立内存动态分配区域,以存放一些临时用的数据,这些数据不必在程序的声明部分定义,也不必等到函数结束时才释放,而是需要时随时开辟,不需要时随时释放,这些数据存储在堆区.可以根据需要,向系统申请 ...

  6. C语言malloc函数为一维,二维,三维数组分配空间

    c语言允许建立内存动态分配区域,以存放一些临时用的数据,这些数据不必在程序的声明部分定义,也不必等到函数结束时才释放,而是需要时随时开辟,不需要时随时释放,这些数据存储在堆区.可以根据需要,向系统申请 ...

  7. c语言 malloc 函数用法

    函数声明: Tips: void的字面意思是"无类型",void *则为"无类型指针",void *可以指向任何类型的数据. malloc 函数申请空间需要使用 ...

  8. C语言-malloc()函数与calloc()函数的使用及区别

    1.malloc()函数 功能 申请堆内存 所需头文件 #include<stdlib.h> 函数原型 void *malloc(size_t,size); 参数(size) 所申请的一块 ...

  9. c语言malloc函数用法_C语言内存模型!小本本记起来啊!

    一.C语言的内存分配模型 1.程序代码区:存放函数体的二进制代码. 2.全局区数据区:全局数据区划分为三个区域.全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全 ...

最新文章

  1. MyBatis接口的简单实现原理
  2. linux shell参数传递、获取方式
  3. AIS 2022 | ACL-IJCAI-SIGIR顶级会议论文预讲会,现开启论文征集
  4. python的回收机制_Python垃圾回收机制【人生苦短,我用python】-阿里云开发者社区...
  5. 面试大厂应该注意哪些问题?隔壁都馋哭了
  6. 在工程中最常用的 vim使用技巧
  7. 《WF编程》系列之30 - 基本活动:错误处理
  8. php生成链接列表,根据URL链接和抛文本生成链接a标签的PHP函数
  9. 基于 Jenkins + JaCoCo 实现功能测试代码覆盖率统计
  10. 刚入行的测试工程师如何自学软件测试【下篇】-- 软实力
  11. 记忆网络之在对话系统中的应用
  12. linux vi指令回退,Linux命令 vi vim
  13. Tech Blog by Eason!
  14. 咸鱼Maya笔记—NURBS放样成型法
  15. 程序员薪酬高达 462 万元:是怎么回事?
  16. 中企海外周报 | 熊猫智能公交车将登陆欧洲,中比能源携手美国S公司签订3亿元电芯供货协议...
  17. 更名通知 || 初心未改,只为更好,好嗨游戏来了
  18. 两种方法设置 .NET/C# 项目的编译顺序,而不影响项目之间的引用
  19. 解密支付系统,来看如何构建理想的支付系统架构
  20. Java基础 项目实例五 简易聊天系统

热门文章

  1. 以太坊白皮书_以太坊发展历程
  2. jmeter 设置环境变量
  3. Visual Studio Code(VScode)设置为中文界面
  4. Flowable 菜单说明
  5. 原生JavaScript轮播图效果实现
  6. php数组获取差集,php数组求差集问题
  7. java map大小_Java中HashMap的size()方法: HashMap.size() - Break易站
  8. Python bin 函数 - Python零基础入门教程
  9. jq之slideup()
  10. 项目七samba服务器,Centos 7 配置Samba服务器