广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言malloc与calloc区别详解
  • 433
分享到

C语言malloc与calloc区别详解

C语言malloccallocC语言mallocC语言calloc 2023-01-13 12:01:34 433人浏览 独家记忆
摘要

目录区别用法malloc用法calloc用法区别 开门见山,malloc与calloc在内存分配时,前者分配一整块,后者分配n块,并且后者在分配时会将内存置为0,前者不会内存里是垃圾

区别

开门见山,malloc与calloc在内存分配时,前者分配一整块,后者分配n块,并且后者在分配时会将内存置为0,前者不会内存里是垃圾数据。

另外它们参数不同,malloc参数只有一个无符号整型的num表示分配的字节数,函数原型如下

void *malloc(size_t num);

calloc参数有两个,分别是无符号整型num表示分配的对象的个数,以及无符号整型size表示每个对象的大小

void *calloc(size_t num, size_t size);

用法

它们在用法上相似,可以起到相同的效果,并且都返回内存的首地址。

以分配容纳5个int整型的空间为例,代码如下

malloc用法

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int *p = (int*)malloc(5*sizeof(int));
    for(int i=0; i<5; i++)
        p[i]=i;

    for(int i=0; i<5;i++)
        printf("%d ",p[i]);

    return 0;
}

calloc用法

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int *p = (int*)calloc(5,sizeof(int));
    for(int i=0; i<5; i++)
        p[i]=i;
    for(int i=0; i<5; i++)
        printf("%d ",p[i]);

    return 0;
}

运行结果
运行结果相同

0 1 2 3 4

到此这篇关于C语言malloc与calloc区别详解的文章就介绍到这了,更多相关C语言malloc与calloc内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: C语言malloc与calloc区别详解

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

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

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

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

下载Word文档
猜你喜欢
  • C语言malloc与calloc区别详解
    目录区别用法malloc用法calloc用法区别 开门见山,malloc与calloc在内存分配时,前者分配一整块,后者分配n块,并且后者在分配时会将内存置为0,前者不会内存里是垃圾...
    99+
    2023-01-13
    C语言 malloc calloc C语言 malloc C语言 calloc
  • C语言中动态内存分配malloc、calloc和realloc函数解析
    目录前言free函数malloc函数calloc函数realloc函数扩充malloc/calloc/realloc区别总结总结前言 有时候我们需要的空间大小不确定,需要随着程序需要...
    99+
    2022-11-13
  • C语言malloc分配问题详解
    目录前言一、malloc是什么?1.1malloc定义1.2malloc函数含义二、malloc的使用2.1添加头文件2.2malloc和free2.3malloc使用注意三、mal...
    99+
    2022-11-12
  • 关于C语言strlen与sizeof区别详情
    目录一.sizeof详解1.sizeof()作用2.sizeof3.sizeof ()4.sizeof()与数组名的关系5.sizeof()返回类型造成的坑二.strlen详解三.s...
    99+
    2022-11-12
  • C语言中break与continue的用法和区别详解
    目录前言一、循环体中两者的作用1.while循环2.for循环3.do while循环二、switch语句总结前言 本文将通过简单的实例来详细分析在C语言中break语句和conti...
    99+
    2022-11-12
  • 详解C语言中typedef和#define的用法与区别
    目录一、typedef的用法二、#define的用法三、typedef与#define的区别四、typedef的用途用途一用途二用途三用途四五、typedef的陷阱陷阱一陷阱二一、t...
    99+
    2022-11-13
  • C++与C语言的区别是什么
    这篇“C++与C语言的区别是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C++与C语言的区别是什么”文章吧。1. 结构...
    99+
    2023-06-29
  • C语言内存的动态分配比较malloc和realloc的区别
    C—动态内存分配之malloc与realloc的区别 在程序的执行期间分配内存时,内存区域中的这个空间称为堆(heap)。还有另一个内存区域,称为栈(stack),其中的空间分配给函...
    99+
    2022-11-12
  • C++语言与其他语言有什么区别
    本篇内容主要讲解“C++语言与其他语言有什么区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++语言与其他语言有什么区别”吧!本文着重进行对C++语言来说,在语法上要简单得多,因此初学者很容...
    99+
    2023-06-17
  • c语言与go语言的区别有哪些
    小编给大家分享一下c语言与go语言的区别有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!区别:1、C语言源文件的扩展名是“.h”和“.c”,Go语言源文件的扩展名是“.go”。2、C语言中通过文件来管理代码,Go语言中...
    99+
    2023-06-06
  • 详解C语言中strcpy函数与memcpy函数的区别与实现
    目录字符串拷贝函数(strcpy)函数原型应用实例缺点内存拷贝函数(memcpy)函数原型应用实例memcpy的模拟实现(my_memcpy)实现样例具体实现字符串拷贝函数(strc...
    99+
    2022-12-29
    C语言 strcpy memcpy区别 C语言 strcpy memcpy实现 C语言 strcpy memcpy
  • golang与C语言有什么区别
    golang与C语言的区别:1、golang是一门面向对象的编程语言,而C语言是一门面向过程的编程语言;2、golang通过包来管理代码,而C语言通过文件来管理代码;3、golang中一共有25个关键字,而C语言中一共有32个关键字;4、占...
    99+
    2023-07-10
  • C语言形参和实参的区别详解
    目录形参和实参的定义形参和实参的作用形参和实参的传递方式传值调用指针调用形参和实参的默认值总结C语言是一种高级编程语言,其最重要的特点之一是它允许程序员使用函数来组织代码。函数是一组...
    99+
    2023-05-20
    C语言 形参 实参
  • C++与C语言的区别你知道吗
    目录1.结构体区别1.1.类型上不再需要struct关键字,直接用结构体名即可1.2.C++结构体中允许函数存在2.动态内存申请C语言的动态内存申请C++的动态申请3.内存池4.st...
    99+
    2022-11-13
  • java与c语言的区别是什么
    这篇文章将为大家详细讲解有关java与c语言的区别是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。java基本数据类型有哪些Java的基本数据类型分为:1、整数类型,用来表示整数的数据类...
    99+
    2023-06-14
  • java与c语言的区别有哪些?
    java与c语言的区别有哪些?1、Java与C内存分配不同:Java中内存分配五个区,分别为栈区(存储的是局部变量,使用完毕,立即回收),堆区(存储的是new出来的东西,实体,对象,每一个对象都有地址值,每个对象的数据都有默认值,使用完毕后...
    99+
    2020-10-28
    java教程 java c语言
  • c语言与javascript的区别有哪些
    这篇文章给大家分享的是有关c语言与javascript的区别有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 区别:1、C语言主要是被编译成机器语...
    99+
    2022-10-19
  • python与C语言的区别有哪些
    python与C语言的区别有:1、python属于动态、强类型类型语言,而C属于静态类型语言;2、python主要是面向对象,而C中没有对象这个概念,只有“数据的表示”;3、两者的变量类型不同,Python六个标准的数据类型,分别是Numb...
    99+
    2022-10-05
  • Python与C语言的区别有什么
    Python与C语言的区别有什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、语言类型Python是一种基于解释器的语言,解释器会逐行读取代码;首先将Pyt...
    99+
    2023-06-15
  • 深入浅析C语言与C++的区别与联系
    目录一、C语言是面向过程语言,而C++是面向对象语言1、面向过程和面向对象的区别2、面向过程和面向对象的优缺点面向过程语言面向对象语言二、具体语言上的区别1、关键字的不同2、后缀名不...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作