当前位置: 首页 > news >正文

【C/C++语言系列】malloc、calloc和realloc区别和用法

这三个函数都是在堆区分配内存的函数,头文件都是:

#include<stdlib.h>

下面分别介绍这三个函数:

malloc:

函数原型

void *malloc(unsigned int num_bytes);

功能:堆区开辟一段内存空间
num_nytes:要开辟的内存字节数
返回值:新开辟内存的首地址
初始值:随机
常规用法:

int* a = malloc(sizeof(int)*10);

calloc:

函数原型:

void *calloc(size_t n, size_t size);

功能:堆区开辟一段内存空间
n:n个数
size:每个数的字节数
返回值:新开辟内存的首地址
初始值:0
常规用法:

int b = calloc(10, sizeof(int));

realloc:

函数原型:

void *realloc(void *mem_address, unsigned int newsize);

功能:修改以前在堆区分配过的内存大小
mem_address:以前分配过内存地址
newsize:修改后的字节数
返回值:修改内存大小后的地址
常规用法:

int* c = malloc(10*sizeof(int));  
c = realloc(c, 20);  //新内存大小为20

注意:
newsize如果小于以前的size,那么就会缩减,如果继续访问不在缩减后的地址,会报错。
newsize如果大于以前的size,分两种情况:原地址后面有足够空间分配newsize个地址,返回原地址;原地址后面不够分配,那么会重新找一块内存,把原来的值复制过来,返回新地址。

相关文章:

【C/C++语言系列】malloc、calloc和realloc区别和用法

这三个函数都是在堆区分配内存的函数&#xff0c;头文件都是&#xff1a; #include<stdlib.h>下面分别介绍这三个函数&#xff1a; malloc&#xff1a; 函数原型&#xff1a; void *malloc(unsigned int num_bytes);功能&#xff1a;堆区开辟一段内存空间 num_nytes&…...

【Linux】POSIX信号量与、基于环形队列实现的生产者消费者模型

目录 一、POSIX信号量概述 信号量的基本概念 信号量在临界区的作用 与互斥锁的比较 信号量的原理 信号量的优势 二、信号量的操作 1、初始化信号量&#xff1a;sem_init 2、信号量申请&#xff08;P操作&#xff09;&#xff1a;sem_wait 3、信号量的释放&#xff08…...

Spring Boot-消息队列相关问题

Spring Boot 消息队列相关问题及解决方案 消息队列&#xff08;Message Queue, MQ&#xff09;在分布式系统中的应用越来越广泛&#xff0c;尤其是在解耦系统、异步通信、负载均衡等场景中起到了至关重要的作用。消息队列为不同的服务提供了一种异步通信的机制&#xff0c;使得…...

[数据集][目标检测]岩石种类检测数据集VOC+YOLO格式4766张9类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;4766 标注数量(xml文件个数)&#xff1a;4766 标注数量(txt文件个数)&#xff1a;4766 标注…...

图像分割基本知识

计算机视觉和图像处理 Tensorflow入门深度神经网络图像分类目标检测图像分割 图像分割 一、目标分割1.1 图像分割的定义1.2 任务类型1.2.1 任务描述1.2.2 任务类型 二、语义分割2.1 FCN网络2.1.1网络结构 2.2 Unet网络 三、UNet案例3.1 数据集获取3.1.1 设置相关信息3.1.2 图像…...

LIN总线CAPL函数——干扰LIN帧响应段(linInvertRespBit )

&#x1f345; 我是蚂蚁小兵&#xff0c;专注于车载诊断领域&#xff0c;尤其擅长于对CANoe工具的使用&#x1f345; 寻找组织 &#xff0c;答疑解惑&#xff0c;摸鱼聊天&#xff0c;博客源码&#xff0c;点击加入&#x1f449;【相亲相爱一家人】&#x1f345; 玩转CANoe&…...

【30天玩转python】网络编程基础

网络编程基础 网络编程是指编写能够在网络上进行通信的程序&#xff0c;通过网络进行数据的发送与接收。Python 提供了许多库和工具来进行网络编程&#xff0c;如 socket、urllib 和 requests。在这篇文章中&#xff0c;我们将介绍网络编程的基础知识&#xff0c;并演示如何使…...

【PCB工艺】如何实现PCB板层间的互连

系列文章目录 1.元件基础 2.电路设计 3.PCB设计 4.元件焊接 5.板子调试 6.程序设计 7.算法学习 8.编写exe 9.检测标准 10.项目举例 11.职业规划 文章目录 前言①、什么是通孔②、通孔是怎样产生的③、通孔种类④、盘中孔⑤、设计建议 前言 送给大学毕业后找不到奋斗方向的你…...

FastAPI--如何自定义Docs UI,包括多个APP、静态资源、元数据等

如何mount 一个FastAPI Application? “Mounting” means adding a completely “independent” application in a specific path, that then takes care of handling everything under that path, with the path operations declared in that sub-application. 示例代码 主…...

【FPGA XDMA AXI Bridge 模式】PCIe:BARs 和 AXI:BARs 含义解析

一. XDMA IP核两种模式 Xilinx的 DMA/Bridge Subsystem for PCI Express IP核中&#xff0c;支持普通的XDMA模式&#xff0c;但是这种模式只允许主机端发起PCIe 读写请求&#xff0c;FPGA内部无法主动发起读写请求&#xff0c;也即FPGA无法主动读写HOST的内存。 而该IP核的另…...

嵌入式-QT学习-小练习

1. 实现多窗口 2. 给按键增加图标 3. 动图展示 结果演示&#xff1a; Mul_Con main.cpp #include "widget.h"#include <QApplication>int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); }一、第一个窗口展示 …...

使用 Flask-Limiter 和 Nginx 实现接口访问次数限制

在现代 Web 应用中&#xff0c;针对敏感接口&#xff08;如短信验证码、登录接口等&#xff09;的访问次数限制至关重要。通过设置合理的限流策略&#xff0c;可以有效防止接口滥用&#xff0c;避免过多的资源消耗&#xff0c;并提升安全性。本文将通过 Nginx 和 Flask-Limiter…...

【数据结构】排序算法---冒泡排序

文章目录 1. 定义2. 算法步骤3. 动图演示4. 性质5. 算法分析6. 代码实现C语言PythonJavaCGo 结语 1. 定义 冒泡排序&#xff08;英语&#xff1a;Bubble sort&#xff09;是一种简单的排序算法。它重复地走访过要排序的数列&#xff0c;一次比较两个元素&#xff0c;如果它们的…...

mysql数据库中事务锁的机制

读锁又称为共享锁&#xff0c;简称S锁&#xff0c;共享锁就是多个事务对于同一数据可以共享一把锁&#xff0c;都能访问到数据&#xff0c;但是只能读不能修改。 写锁又称为排他锁&#xff0c;简称X锁&#xff0c;排他锁就是不能与其他所并存&#xff0c;如一个事务获取了一个…...

并发工具类-CountDownLatch

CountDownLatch 是 Java 中提供的一种非常有用的并发工具类&#xff0c;位于 java.util.concurrent 包中。它可以使一个或多个线程等待其他线程完成一组特定的操作后再继续执行。CountDownLatch 通过维护一个计数器来实现这一点&#xff0c;计数器的初始值由构造函数设定。每当…...

进程的重要函数

进程的重要函数: fork函数 了解fork函数 通过调用fork()函数&#xff0c;则会产生一个新的进程。调用fork()函数的进程叫做 父进程&#xff0c;产生的新进程则为子进程。 其编码过程: 1.函数功能: 函数头文件 #include <sys/types.h> #include <unistd.h> 函数…...

python 实现average median平均中位数算法

average median平均中位数算法介绍 平均&#xff08;Mean&#xff09;和中位数&#xff08;Median&#xff09;是统计学中常用的两个概念&#xff0c;用于描述一组数据的中心趋势&#xff0c;但它们并不是算法&#xff0c;而是数据处理的结果。不过&#xff0c;我可以解释如何…...

HTML概述

1. HTML概述 1.1 HTML定义 HTML超文本标记语言&#xff0c;其中超文本是链接&#xff0c;标记也叫标签&#xff08;即带尖括号的文本&#xff09;。 1.2 HTML基本骨架 HTML基本骨架是网页模板。 <html><head><title>网页的标题</title></head&…...

【FFT】信号处理——快速傅里叶变换【通俗易懂】

快速傅里叶变换&#xff08;Fast Fourier Transform, FFT&#xff09;是一种用于将信号从时间域转换到频率域的算法。 傅里叶变换的核心思想是&#xff1a;任何周期性信号都可以分解成多个不同频率的正弦波或余弦波的叠加。 简单来说&#xff0c;FFT可以帮助我们理解一个信号…...

电脑升级WIN11之后需要注意哪些东西

1.记事本&#xff0c;在前单位时&#xff0c;电脑升级后&#xff0c;记事本会需要手动更新&#xff0c;或手动安装 2.任务栏&#xff0c;WIN11默认任务栏在中间位置&#xff0c;想要调成WIN10一样的位置&#xff0c;分享两个方法 拖拽法&#xff08;适用于Windows 11 2022年1…...

软阴影:那个让虚拟世界“温柔起来“的光影小秘密

一、从一只小猫的影子说起 前几天我在朋友家做客&#xff0c;他家养了一只胖乎乎的橘猫&#xff0c;正趴在阳台的窗边晒太阳。我无意间瞥了一眼那只猫脚边的影子&#xff0c;突然被一个细节震撼了—— 那只猫的影子——并不是一片均匀的黑。 仔细看——猫肚子紧贴地板的地方——…...

ARM架构CONSTRAINED UNPREDICTABLE行为解析与应对

1. ARM架构中的CONSTRAINED UNPREDICTABLE行为解析在处理器架构设计中&#xff0c;UNPREDICTABLE行为通常指架构规范未明确定义的执行结果&#xff0c;可能导致不可预期的系统状态。ARM架构通过引入CONSTRAINED UNPREDICTABLE机制&#xff0c;将这类行为限制在特定范围内&#…...

金融合规审核为何人力堆积却仍漏洞百出?2026年RegTech演进与Agent全链路闭环解决方案

在2026年的金融监管环境下&#xff0c;合规审核已不再是简单的“查漏补缺”&#xff0c;而是演变为一场高强度的算力与逻辑博弈。尽管金融机构在合规成本上的投入逐年攀升&#xff0c;甚至不惜以“人海战术”填补流程断点&#xff0c;但监管罚单的数额与频率却并未显著下降。这…...

别再只比参数了!从插件生态到中文优化,聊聊ChatGPT和文心一言的“隐形”差异

超越参数之争&#xff1a;ChatGPT与文心一言的生态与本土化实战解析 当技术评测文章还在反复比较模型参数量与发布时间时&#xff0c;真正影响日常工作效率的往往是那些未被量化的"软实力"。本文将从插件生态构建与中文场景优化两个维度&#xff0c;带您重新认识这两…...

对比不同模型在创意生成任务中的效果与token消耗差异

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 对比不同模型在创意生成任务中的效果与token消耗差异 在为一场创意大赛准备素材时&#xff0c;我们面临一个常见的选择&#xff1a…...

鸿蒙HarmonyOS 5与Unity跨运行时通信实战指南

1. 这不是“调个API”那么简单&#xff1a;为什么鸿蒙Unity通信总在临门一脚卡住我第一次把Unity打包的AR模块塞进HarmonyOS 5 App里时&#xff0c;信心满满——毕竟文档里写着“支持JS/ArkTS调用Native能力”&#xff0c;Unity也标榜“跨平台通用”。结果呢&#xff1f;App一启…...

别只盯着主控芯片!拆解STM32最小系统板:电源、时钟、复位三大支柱电路深度解析

STM32最小系统板设计进阶&#xff1a;电源、时钟与复位电路的工程实践 在嵌入式系统开发中&#xff0c;我们常常将注意力集中在主控芯片的功能实现上&#xff0c;却忽略了支撑系统稳定运行的三大基础电路——电源、时钟和复位。这些看似简单的电路模块&#xff0c;实则是整个系…...

AI算法工程师必学的Python库:这10个库,AI开发必备

对于软件测试从业者来说&#xff0c;随着人工智能技术在测试领域的渗透越来越深——从自动化测试用例生成到缺陷智能预测&#xff0c;从测试结果分析到测试环境智能化调度&#xff0c;掌握AI开发的核心工具链已经成为从功能测试向AI测试开发、智能化测试转型的核心竞争力。Pyth…...

具身智能的发展对人类社会的影响有哪些?

具身智能对人类社会影响一、经济产业层面产业重构&#xff1a;催生机器人、智能制造、自动驾驶新产业&#xff0c;重塑生产链条效率跃升&#xff1a;替代重复繁重劳作&#xff0c;工厂、农业、物流产能大幅提升就业结构变化&#xff1a;低端体力岗位缩减&#xff0c;运维、研发…...

DRG存档编辑器终极指南:如何快速解锁《深岩银河》的全部游戏体验

DRG存档编辑器终极指南&#xff1a;如何快速解锁《深岩银河》的全部游戏体验 【免费下载链接】DRG-Save-Editor Rock and stone! 项目地址: https://gitcode.com/gh_mirrors/dr/DRG-Save-Editor 还在为《深岩银河》中无尽的资源收集和等级提升感到疲惫吗&#xff1f;DRG…...