首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >C 中内存的一些操作

C 中内存的一些操作

作者头像
ke1th
发布于 2018-01-02 03:14:57
发布于 2018-01-02 03:14:57
64900
代码可运行
举报
运行总次数:0
代码可运行

分配内存与释放内存

在C 中,下列函数的声明在 stdlib.h 中,在 C++, 声明在 cstdlib

  • malloc
  • realloc
  • calloc
  • free , 释放分配的内存(分配的内存块的头部记录了当前分配内存块的大小)

一、 malloc

malloc(memory allocate)在堆上分配内存, 分配内存块

函数原型为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
void* malloc(size_t size);
  • size : 所需内存字节数
  • 如果成功,返回内存第一个字节的地址。如果不成功,返回空指针!

http://www.cplusplus.com/reference/cstdlib/malloc/

二、realloc

re-allocate, 重新分配内存块

函数原型为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
void* realloc (void* ptr, size_t size);
  • 改变 ptr 指向的内存块的大小, 此函数可能会移动内存块到一个新的位置。
  • ptr ,指向被分配的 内存块
  • size , 目标内存块大小

http://www.cplusplus.com/reference/cstdlib/realloc/

三、calloc

函数原型为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
void* calloc (size_t num, size_t size);
  • Allocate and zero-initialize array
  • num , 元素的个数
  • size, 每个元素的大小
  • 相当于 分配了 num*size 个 字节,并初始化为 0

http://www.cplusplus.com/reference/cstdlib/calloc/

四、free

函数原型为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
void free (void* ptr);
  • 回收分配的内存块
  • ptr , 内存块的第一个字节的地址(malloc,realloc,calloc 的返回值)

内存间数据的移动和复制

memcpy和 memmove 在头文件 string.h (C)/ cstring(C++)中,

一、 memcpy

函数原型:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
void * memcpy ( void * destination, const void * source, size_t num );
  • 从 source 中 复制 num 个字节到 destination 中。
  • 不会对 destination 和 source 做越界检查

二、 memmove

函数原型:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
void * memmove ( void * destination, const void * source, size_t num );
  • 从 source 中 复制 num 个字节到 destination 中。
  • 会先拷贝到一个 buffer 中,然后再到 destination 中, destination 和 source 可以 overlap
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
三门问题matlab模拟
概率论大作业 要求用matlab仿真三门问题 三门问题非常经典,不多赘述 由于CSDN上没有找到相应的matlab程序 我重新做了一下 话不多说,直接上代码
zstar
2022/06/14
3850
三门问题matlab模拟
凯利公式(庄家必胜篇)——致放假在家的高薪程序员们
叶汉说的只是心理层面,现代赌场程序方面的设计比叶汉当年要缜密得多,赌场集中了概率学、统计学的数学知识。一个普通赌徒,只要长久赌下去,最终一定会血本无归。所谓的各种致胜绝技,除了《赌圣》电影里的周星星,现实世界里的周星驰都不信。
红目香薰
2022/11/29
1.3K0
凯利公式(庄家必胜篇)——致放假在家的高薪程序员们
逢赌必赢的秘密
本文由CDA作者库成员麻赛原创,并授权发布 原文来自公众号麻大湿讲数据(ID:madashi_data)。 首先是麻大湿的老实交代 这篇文章标题党了,你不能学到逢赌必赢的秘密,要是真有这本事我还写公众
CDA数据分析师
2018/02/24
2.9K0
逢赌必赢的秘密
赌博倍投策略谬论的数学分析
倍投策略: 第一把押x元,若赢了,第二把仍押x元;若输了,第二把就翻倍押注2x。 第二把若赢了,则第三把仍押x元;若输的话就继续翻倍压,押4x元; 第三把若赢了,则第四把仍押x元;若输的话就继续翻倍压,押8x元; 如此反复。 只要有一局赢了就可以连本带利的赚回来。
海天一树
2018/12/21
7.2K0
生日悖论matlab模拟
概率论课堂小作业 要求用matab模拟生日悖论 条件:30人||100次 本来想白嫖网上的解答 结果竟然找不到用matlab模拟仿真的 所幸不难 自己动手,也为后人铺路。 话不多说,直接上代码
zstar
2022/06/14
9940
生日悖论matlab模拟
随机过程(B)——鞅的引入,性质与举例。可选停时定理
上一节笔记:随机过程(A)——连续时间马尔科夫链的离出分布,到达时间。排队论模型与排队网络举例
学弱猹
2021/08/10
3.6K0
随机过程(B)——鞅的引入,性质与举例。可选停时定理
5000字用C++带你入门马氏链。
随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。其中马尔科夫过程在预测模型上面的作用很大,校园图书馆管理人员根据当前学生们借阅图书的情况,需要用到马氏链来进行预测,股票行情的涨跌幅,状态分类。以及农业生态环境上面的改善,马氏链都做出了贡献。 本文主要从马尔可夫理论模型出发,通过分析小案例–赌徒何时才会收手,深入地了解离散时间序列的马尔可夫过程(马氏链)在我们生活当中的应用,在文章的核心部分,还会运用编程语言来实现预测一些有趣的模型,最后总结出马氏链的优缺点,帮助我们同学们更好的学习马氏链。
用户10271432
2022/12/19
9020
5000字用C++带你入门马氏链。
MATLAB仿真总结
工作区存在的变量可能会对脚本运行产生影响,故代码(脚本)开头需要添加如下命令
sea-wind
2019/09/11
9800
理解计算 从根号2到AlphaGo 第七季 无处不在的贝叶斯-人物篇
http://www.tensorinfinity.com/paper_162.html
SIGAI学习与实践平台
2019/05/27
1.2K0
理解计算 从根号2到AlphaGo 第七季 无处不在的贝叶斯-人物篇
概率论之正态分布密度函数与matlab
众所周知,在这个数学建模的这个过程之中会遇到很多的这个概率论的相关的问题,之前分享过这个假设性检验的这个相关内容,但是那个只是沧海一粟,概率论和数理统计的很多内容都是偏向于理论的,这让原本就是复杂的知识更是雪上加霜,这也让这个概率论成为很多人成长道路上面的这个拦路虎;
阑梦清川
2025/02/24
1380
概率论之正态分布密度函数与matlab
【matlab】QR分解
给定一个m×n的矩阵A,其中m≥n,即矩阵A是高矩阵或者是方阵,QR分解将矩阵A分解为两个矩阵Q和R的乘积,其中矩阵Q是一个m×n的各列正交的矩阵,即QTQ=I,矩阵R是一个n×n的上三角矩阵,其对角线元素为正。
叶茂林
2023/12/05
6780
【matlab】QR分解
时滞模型的matlab编程_如何用matlab仿真
t(1, time+20) = tBegin + dt * time + 19*0.1;
全栈程序员站长
2022/11/10
1.5K0
时滞模型的matlab编程_如何用matlab仿真
编程小技巧之matlab python画二项分布的动态图
在数据处理中,matlab和Python是常用的工具,在量化模型中,概率论是一项很重要的基础,而中心极限定理在概率论中又是一个很重要的理论。
猫叔Rex
2020/06/30
1.3K0
编程小技巧之matlab python画二项分布的动态图
号称在澳门100%赢钱的倍押法,真的可行吗?
最近比特币价格大跳水,多少炒币客爆仓,尤其是那些加了杠杆的更是倾家荡产。我就听说了身边一个因为借了巨额债务炒币血本无归最终自杀的case,这人刚结婚不久,老婆也才生了孩子,就发生了这样的悲剧,实在是令人唏嘘。
TechFlow-承志
2022/08/26
18K0
号称在澳门100%赢钱的倍押法,真的可行吗?
雷达检测及MATLAB仿真
,可以看到随着 SNR 信噪比的增加,检测概率逐渐增大,此外,虚警概率越小,随着信噪比的增加,检测概率增加的越快。
Gnep@97
2023/11/11
7330
雷达检测及MATLAB仿真
蒙特卡罗(Monte Carlo)方法——从数学原理到实际案例
Monte Carlo方法是一种应用随机数来进行计算机模拟的方法,通过对所研究系统进行随机观察抽样并对样本值进行统计分析,来得到所研究系统的某些参数。
mindtechnist
2025/05/15
1.1K0
蒙特卡罗(Monte Carlo)方法——从数学原理到实际案例
matlab
对于一些nc数据或者遥感影像处理时,虽然一些第三方软件可以出图,但我们往往需要借助python或者matlab软件进行数据处理,但最后保存下来数据如何导入arcgis进行分析呢?
用户6841540
2024/08/05
6180
matlab计算机仿真与蒙特卡洛法【数学建模】
前言:在计算机出现之前,我们对数学模型的研究只能通过数学推导和实验研究两种方法。在此之后,我们可以通过在计算机上对实际问题的模拟、仿真求解模型。计算机仿真在数学建模中具有很重要的作用,而蒙特卡洛法则是计算机仿真中的一个重要方法。
巴山学长
2021/07/09
2.4K0
matlab计算机仿真与蒙特卡洛法【数学建模】
利用matlab实现非线性拟合(上)
一般而言,通过已有的数据点去推导其它数据点,常见的方法有插值和拟合。插值适用性较广,尤其是线性插值或样条插值已被广泛的应用。但是通过已知的函数去拟合数据,是连接理论与实验重要的桥梁,这一点是插值无法替代的。
巴山学长
2021/04/22
2.7K0
利用matlab实现非线性拟合(上)
遗传算法的matlab代码_遗传算法实际应用
(1)初始化。设置进化代数计数器 \(g=0\),设置最大进化代数 \(G\),随机生成 \(NP\) 个个体作为初始群体 \(P(0)\)。
全栈程序员站长
2022/10/01
1.9K0
遗传算法的matlab代码_遗传算法实际应用
相关推荐
三门问题matlab模拟
更多 >
交个朋友
加入腾讯云官网粉丝站
蹲全网底价单品 享第一手活动信息
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档