由于C++中没有C语言中的realloc的函数,对存储空间的动态增长的再分配,就此写一个模板进行替代之:­

template<typename T> T* realloc( T* &p, size_t oldsize, size_t newsize ) { if ( oldsize > newsize ) { return NULL; } T* tmpmemery=new T[newsize]; memset( tmpmemery, 0, newsize ); memcpy( tmpmemery, p, oldsize*sizeof(T) ); delete []p; return p = tmpmemery; } int main() { int* p = new int[128]; for( int i=0; i < 128; i++ ) p[i] = i; realloc( p, 128, 256 ); delete []p; return 0; }

代码本身没有什么,关键是思路:

首先、判断要申请的空间是否比原来的大;

然后、用new申请一个更大的内存空间,并将其置空;

接着、将原来指向的内存空间的内容进行拷贝到新申请的空间;

最后、将原来的空间进行释放,原来的指针指向新申请的空间,返回即可。

C++中的动态空间扩充方法相关推荐

  1. php动态写入vue,Vue.js中使用动态组件的方法

    本文介绍了如何在Vue.js中引用组件中的HTML元素.您可以通过使用Vue路由器或创建动态组件来切换视图或组件模板. Vue路由器用于在DOM中的视图或组件模板之间导航.要使用Vue路由器,请在ro ...

  2. 第6章 Python中的动态可执行方法 第6.1节 Python代码编译

    在介绍动态可执行方法前,本节先介绍一下Python代码编译有关的知识,因为部分内容和动态执行有些关联. 一.    Python解释器的功能 Python虽然是解释型语言,但Python代码也是可编译 ...

  3. java中显示动态信息的方法_java里的动态表单技术

    最近的一个项目,由于客户的需求等信息不确定,为了降低以后修改的成本及产品的推广考虑到动态表单技术,之前也一直在考虑到动态表单技术,毕竟在delphi里已经实现过了,由于我们采用的hibernate的执 ...

  4. 无需安装任何软件即可在个人电脑中创建隐私空间的方法

    按照以下方法操作能够实现在电脑硬盘或U盘中创建一个保密空间,不需要安装任何软件,可以随时打开或隐藏,非常方便. 步骤: 1.在个人电脑中建立一个txt文档: 2.打开txt,拷贝以下代码放入文档中保存 ...

  5. C++中的开辟/释放动态空间new/delete

    在C语言中用于开辟/释放动态空间的关键词是malloc/free,该种开辟空间的方法在C++中,也适用,但除此之外C++还提供了另外一种开辟/释放动态空间的关键词new/delete.对于用mallo ...

  6. ORACLE12C 创建表空间的方法

    在oracle 数据库中,表空间是最大的概念,与用户独立,创建一个表空间,所有用户可以共用.接下来,讲解在oracle 12c 数据库中创建表空间的方法,在oracle 12c 数据库中,默认表空间有 ...

  7. C# 在PDF中绘制动态图章

    我们知道,动态图章,因图章中的时间.日期可以动态的生成,因而具有较强的时效性.在本篇文章中将介绍通过C#编程在PDF中绘制动态图章的方法,该方法可自动获取当前系统登录用户名.日期及时间信息并生成图章. ...

  8. 在静态SQL中实现动态WHERE子句

    目录 介绍 实现动态WHERE-Clause 使用COALESCE 使用ISNULL 使用CASE 替代方案 结论 本文介绍了在静态SQL中实现动态WHERE-Clause的不同方法. 下载演示SQL ...

  9. 如何录制gif动态图片并在CSDN中插入动态图片

    我们在网上浏览别人的博客时,经常可以看到以gif动态图显示的程序效果演示和代码段,那么如何录制gif动态图片并在CSDN中插入动态图片呢?        下面介绍一种简单的方法,了解之后,你也可以将其 ...

最新文章

  1. gRPC 网关,针对 HTTP 2.0 长连接性能优化,提升吞吐量
  2. MLNLP顶会论文发表总榜:谷歌最狂,清北入前十,周明、张岳、刘挺华人前三...
  3. 计算机 二进制 中国,二进制与计算机
  4. iOS实现自定义的弹出视图(popView)
  5. 回溯算法--8皇后问题
  6. curl查看swift状态命令_前端应该会的23个linux常用命令
  7. uva 11992 Fast Matrix Operations
  8. VCL组件之重要的公用属性
  9. 这些C4D创意卡通色彩场景,简直酷到爆炸!
  10. 笔记︱利用python + flask制作一个简易本地restful API
  11. 基于SSM的家庭理财系统
  12. android程序无法安装,安卓手机安装不了软件怎么办 手机无法安装软件原因和方法...
  13. mega linux教程,LINUX 安装MegaRAID Storage Manager (MSM)安装使用教程
  14. 网络常用端口号(全)
  15. matlab神经网络工具箱
  16. 模电数电高频电路综合实验成套设备QY-MS535G
  17. 已知二叉树的前序序列跟中序序列求后序序列(C语言)
  18. Web—13-判断网站请求来自手机还是pc浏览器
  19. 花生壳域名穿透 网站无法访问
  20. 云服务器与实体服务器性能,实体服务器和云服务器 的利与弊

热门文章

  1. 【python练习】打印菱形
  2. Gdevops峰会| 在什么情况下应该考虑换数据库了?
  3. 对deap数据集进行脑电情绪识别并进行频谱分析(频域特征)
  4. 临床路径管理系统有那些主要功能
  5. LS-GAN作者诠释新型GAN:条条大路通罗马,把GAN建立在Lipschitz密度上
  6. 字符串匹配 - RK算法
  7. 5A成绩拿下PMP的备考经验
  8. supplier java8_关于JAVA8中关于Supplier的个人理解
  9. snn和ann消耗能量对比
  10. 房地产投影沙盘模型制作比例如何确定?