千家信息网

malloc和new及realloc函数分别是什么

发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这期内容当中小编将会给大家带来有关malloc和new及realloc函数分别是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1、malloc函数void *m
千家信息网最后更新 2025年01月19日malloc和new及realloc函数分别是什么

这期内容当中小编将会给大家带来有关malloc和new及realloc函数分别是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

1、malloc函数
void *malloc(size_t size); 说明:malloc 向系统申请分配指定size个字节的内存空间。返回类型是 void* 类型。
2、malloc 和 new 至少有两个不同:
new 返回指定类型的指针,并且可以自动计算所需要大小。比如:   int *p;   p = new int; //返回类型为int* 类型(整数型指针),分配大小为 sizeof(int);
  或:   int* parr;   parr = new int [100]; //返回类型为 int* 类型(整数型指针),分配大小为 sizeof(int) * 100;
而 malloc 则必须要由我们计算字节数,并且在返回后强行转换为实际类型的指针。
  int* p;   p = (int *) malloc (sizeof(int)*128);//分配128个(可根据实际需要替换该数值)整型存储单元,并将这128个连续的整型存储单元的首地址存储到指针变量p中
  double *pd=(double *) malloc (sizeof(double)*12);//分配12个double型存储单元,并将首地址存储到指针变量pd中
除了分配及最后释放的方法不一样以外,通过malloc或new得到指针,在其它操作上保持一致。

3、C语言函数realloc
原型:extern void *realloc(void *mem_address, unsigned int newsize);   

语法:指针名=(数据类型*)realloc(要改变内存大小的指针名,新的大小)。//新的大小一定要大于原来的大小不然的话会导致数据丢失!   

头文件:#include 有些编译器需要#include ,在TC2.0中可以使用alloc.h头文件   

功能:先按照newsize指定的大小分配空间,将原有数据从头到尾拷贝到新分配的内存区域,而后释放原来mem_address所指内存区域,同时返回新分配的内存区域的首地址。即重新分配存储器块的地址。   

返回值:如果重新分配成功则返回指向被分配内存的指针,否则返回空指针NULL。    

注意:这里原始内存中的数据还是保持不变的。当内存不再使用时,应使用free()函数将内存块释放。

上述就是小编为大家分享的malloc和new及realloc函数分别是什么了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

分配 指针 内存 类型 大小 存储 函数 地址 数据 区域 单元 内容 变量 字节 实际 整数 整数型 文件 空间 并将 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 6g网络技术已启动研究 北京智慧电梯软件开发解决方案 学校网络安全抄报 苹果tv显示等待更新服务器 敖汉旗天气预报软件开发 使命召唤一直连接不到服务器 公安局网络安全管理体检 火绒服务器异常是怎么回事 服务器管理口登录网页打不开 ibm服务器联想 选择服务器 关于网络安全检测装置 声誉好的语音聊天软件开发 数据库服务器属于什么资产分类 ibm 官网 服务器 分管领导检查网络安全情况报告 邮箱收件服务器gmail 网络安全技术匿名邮件 浩奇软件开发技术培训公司 联想服务器正品验证 年份限制全文文献可选哪个数据库 公安局网络安全科员是干啥的 河南悦博网络技术有限公司 知网外文数据库搜不到 软件开发银行账务处理 设某一数据库有四个表 网络安全是读什么专业 文件上传linux服务器 价格适中的软件开发 无法连接到云端服务器是什么意思
0